View Javadoc
1   // Generated from org/apache/shardingsphere/sql/parser/autogen/HiveStatement.g4 by ANTLR 4.10.1
2   package org.apache.shardingsphere.sql.parser.autogen;
3   import org.antlr.v4.runtime.atn.*;
4   import org.antlr.v4.runtime.dfa.DFA;
5   import org.antlr.v4.runtime.*;
6   import org.antlr.v4.runtime.misc.*;
7   import org.antlr.v4.runtime.tree.*;
8   import java.util.List;
9   import java.util.Iterator;
10  import java.util.ArrayList;
11  
12  @SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
13  public class HiveStatementParser extends Parser {
14  	static { RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION); }
15  
16  	protected static final DFA[] _decisionToDFA;
17  	protected static final PredictionContextCache _sharedContextCache =
18  		new PredictionContextCache();
19  	public static final int
20  		BLOCK_COMMENT=1, INLINE_COMMENT=2, AND_=3, OR_=4, NOT_=5, TILDE_=6, VERTICAL_BAR_=7, 
21  		AMPERSAND_=8, SIGNED_LEFT_SHIFT_=9, SIGNED_RIGHT_SHIFT_=10, CARET_=11, 
22  		MOD_=12, COLON_=13, PLUS_=14, MINUS_=15, ASTERISK_=16, SLASH_=17, BACKSLASH_=18, 
23  		DOT_=19, DOT_ASTERISK_=20, SAFE_EQ_=21, DEQ_=22, EQ_=23, NEQ_=24, GT_=25, 
24  		GTE_=26, LT_=27, LTE_=28, POUND_=29, LP_=30, RP_=31, LBE_=32, RBE_=33, 
25  		LBT_=34, RBT_=35, COMMA_=36, DQ_=37, SQ_=38, BQ_=39, QUESTION_=40, AT_=41, 
26  		SEMI_=42, ASSIGNMENT_=43, JSON_SEPARATOR=44, JSON_UNQUOTED_SEPARATOR=45, 
27  		WS=46, MAX=47, MIN=48, SUM=49, COUNT=50, GROUP_CONCAT=51, CAST=52, POSITION=53, 
28  		SUBSTRING=54, SUBSTR=55, EXTRACT=56, TRIM=57, LAST_DAY=58, TRADITIONAL=59, 
29  		TREE=60, MYSQL_MAIN=61, MYSQL_ADMIN=62, INSTANT=63, INPLACE=64, COPY=65, 
30  		UL_BINARY=66, AUTOCOMMIT=67, INNODB=68, REDO_LOG=69, DELIMITER=70, FOR_GENERATOR=71, 
31  		ACCESSIBLE=72, ACCOUNT=73, ACTION=74, ACTIVE=75, ADD=76, ADMIN=77, AFTER=78, 
32  		AGAINST=79, AGGREGATE=80, ALGORITHM=81, ALL=82, ALTER=83, ALWAYS=84, ANALYZE=85, 
33  		AND=86, ANY=87, ARRAY=88, AS=89, ASC=90, ASCII=91, ASENSITIVE=92, AT=93, 
34  		ATTRIBUTE=94, AUTOEXTEND_SIZE=95, AUTO_INCREMENT=96, AVG=97, ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS=98, 
35  		BIT_XOR=99, AVG_ROW_LENGTH=100, BACKUP=101, BEFORE=102, BEGIN=103, BETWEEN=104, 
36  		BIGINT=105, BINARY=106, BINLOG=107, BIT=108, BLOB=109, BLOCK=110, BOOL=111, 
37  		BOOLEAN=112, BOTH=113, BTREE=114, BUCKETS=115, BY=116, BYTE=117, CACHE=118, 
38  		CALL=119, CASCADE=120, CASCADED=121, CASE=122, CATALOG_NAME=123, CHAIN=124, 
39  		CHANGE=125, CHANGED=126, CHANNEL=127, CHAR=128, CHAR_VARYING=129, CHARACTER=130, 
40  		CHARACTER_VARYING=131, CHARSET=132, CHECK=133, CHECKSUM=134, CIPHER=135, 
41  		CLASS_ORIGIN=136, CLIENT=137, CLONE=138, CLOSE=139, COALESCE=140, CODE=141, 
42  		COLLATE=142, COLLATION=143, COLUMN=144, COLUMNS=145, COLUMN_FORMAT=146, 
43  		COLUMN_NAME=147, COMMENT=148, COMMIT=149, COMMITTED=150, COMPACT=151, 
44  		COMPLETION=152, COMPONENT=153, COMPRESSED=154, COMPRESSION=155, CONCURRENT=156, 
45  		CONDITION=157, CONNECTION=158, CONSISTENT=159, CONSTRAINT=160, CONSTRAINT_CATALOG=161, 
46  		CONSTRAINT_NAME=162, CONSTRAINT_SCHEMA=163, CONTAINS=164, CONTEXT=165, 
47  		CONTINUE=166, CONVERT=167, CPU=168, CREATE=169, CROSS=170, CUBE=171, CUME_DIST=172, 
48  		CURRENT=173, CURRENT_DATE=174, CURRENT_TIME=175, CURRENT_TIMESTAMP=176, 
49  		CURRENT_USER=177, CURSOR=178, CURSOR_NAME=179, DATA=180, DATABASE=181, 
50  		DATABASES=182, DATAFILE=183, DATE=184, DATETIME=185, DAY=186, DAY_HOUR=187, 
51  		DAY_MICROSECOND=188, DAY_MINUTE=189, DAY_SECOND=190, DEALLOCATE=191, DEC=192, 
52  		DECIMAL=193, DECLARE=194, DEFAULT=195, DEFAULT_AUTH=196, DEFINER=197, 
53  		DEFINITION=198, DELAYED=199, DELAY_KEY_WRITE=200, DELETE=201, DENSE_RANK=202, 
54  		DESC=203, DESCRIBE=204, DESCRIPTION=205, DETERMINISTIC=206, DIAGNOSTICS=207, 
55  		DIRECTORY=208, DISABLE=209, DISCARD=210, DISK=211, DISTINCT=212, DISTINCTROW=213, 
56  		DIV=214, DO=215, DOUBLE=216, DROP=217, DUAL=218, DUMPFILE=219, DUPLICATE=220, 
57  		DYNAMIC=221, EACH=222, ELSE=223, ELSEIF=224, EMPTY=225, ENABLE=226, ENCLOSED=227, 
58  		ENCRYPTION=228, END=229, ENDS=230, ENFORCED=231, ENGINE=232, ENGINES=233, 
59  		ENGINE_ATTRIBUTE=234, ENUM=235, ERROR=236, ERRORS=237, ESCAPE=238, ESCAPED=239, 
60  		EVENT=240, EVENTS=241, EVERY=242, EXCEPT=243, EXCHANGE=244, EXCLUDE=245, 
61  		EXECUTE=246, EXISTS=247, EXIT=248, EXPANSION=249, EXPIRE=250, EXPLAIN=251, 
62  		EXPORT=252, EXTENDED=253, EXTENT_SIZE=254, FAILED_LOGIN_ATTEMPTS=255, 
63  		FALSE=256, FAST=257, FAULTS=258, FETCH=259, FILE=260, FILE_BLOCK_SIZE=261, 
64  		FILTER=262, FIRST=263, FIRST_VALUE=264, FIXED=265, FLOAT=266, FLOAT4=267, 
65  		FLOAT8=268, FLUSH=269, FOLLOWING=270, FOLLOWS=271, FOR=272, FORCE=273, 
66  		FOREIGN=274, FORMAT=275, FOUND=276, FROM=277, FULL=278, FULLTEXT=279, 
67  		FUNCTION=280, GENERAL=281, GENERATED=282, GEOMETRY=283, GEOMCOLLECTION=284, 
68  		GEOMETRYCOLLECTION=285, GET=286, GET_FORMAT=287, GET_MASTER_PUBLIC_KEY=288, 
69  		GLOBAL=289, GRANT=290, GRANTS=291, GROUP=292, GROUPING=293, GROUPS=294, 
70  		GROUP_REPLICATION=295, GET_SOURCE_PUBLIC_KEY=296, GTID_ONLY=297, GENERATE=298, 
71  		HANDLER=299, HASH=300, HAVING=301, HELP=302, HIGH_PRIORITY=303, HISTOGRAM=304, 
72  		HISTORY=305, HOST=306, HOSTS=307, HOUR=308, HOUR_MICROSECOND=309, HOUR_MINUTE=310, 
73  		HOUR_SECOND=311, IDENTIFIED=312, IF=313, IGNORE=314, IGNORE_SERVER_IDS=315, 
74  		IMPORT=316, IN=317, INACTIVE=318, INDEX=319, INDEXES=320, INFILE=321, 
75  		INITIAL_SIZE=322, INNER=323, INOUT=324, INSENSITIVE=325, INSERT=326, INSERT_METHOD=327, 
76  		INSTALL=328, INSTANCE=329, INT=330, INT1=331, INT2=332, INT3=333, INT4=334, 
77  		INT8=335, INTEGER=336, INTERVAL=337, INTO=338, INVISIBLE=339, INVOKER=340, 
78  		IO=341, IO_AFTER_GTIDS=342, IO_BEFORE_GTIDS=343, IPC=344, IS=345, ISOLATION=346, 
79  		ISSUER=347, ITERATE=348, JOIN=349, JSON=350, JSON_TABLE=351, JSON_VALUE=352, 
80  		KEY=353, KEYS=354, KEY_BLOCK_SIZE=355, KILL=356, LAG=357, LANGUAGE=358, 
81  		LAST=359, LAST_VALUE=360, LATERAL=361, LEAD=362, LEADING=363, LEAVE=364, 
82  		LEAVES=365, LEFT=366, LESS=367, LEVEL=368, LIKE=369, LIMIT=370, LINEAR=371, 
83  		LINES=372, LINESTRING=373, LIST=374, LOAD=375, LOCAL=376, LOCALTIME=377, 
84  		LOCALTIMESTAMP=378, LOCK=379, LOCKED=380, LOCKS=381, LOGFILE=382, LOGS=383, 
85  		LONG=384, LONGBLOB=385, LONGTEXT=386, LONG_CHAR_VARYING=387, LONG_VARCHAR=388, 
86  		LOOP=389, LOW_PRIORITY=390, MASTER=391, MASTER_AUTO_POSITION=392, MASTER_BIND=393, 
87  		MASTER_COMPRESSION_ALGORITHM=394, MASTER_CONNECT_RETRY=395, MASTER_DELAY=396, 
88  		MASTER_HEARTBEAT_PERIOD=397, MASTER_HOST=398, MASTER_LOG_FILE=399, MASTER_LOG_POS=400, 
89  		MASTER_PASSWORD=401, MASTER_PORT=402, MASTER_PUBLIC_KEY_PATH=403, MASTER_RETRY_COUNT=404, 
90  		MASTER_SERVER_ID=405, MASTER_SSL=406, MASTER_SSL_CA=407, MASTER_SSL_CAPATH=408, 
91  		MASTER_SSL_CERT=409, MASTER_SSL_CIPHER=410, MASTER_SSL_CRL=411, MASTER_SSL_CRLPATH=412, 
92  		MASTER_SSL_KEY=413, MASTER_SSL_VERIFY_SERVER_CERT=414, MASTER_TLS_CIPHERSUITES=415, 
93  		MASTER_TLS_VERSION=416, MASTER_USER=417, MASTER_ZSTD_COMPRESSION_LEVEL=418, 
94  		MATCH=419, MAXVALUE=420, MAX_CONNECTIONS_PER_HOUR=421, MAX_QUERIES_PER_HOUR=422, 
95  		MAX_ROWS=423, MAX_SIZE=424, MAX_UPDATES_PER_HOUR=425, MAX_USER_CONNECTIONS=426, 
96  		MEDIUM=427, MEDIUMBLOB=428, MEDIUMINT=429, MEDIUMTEXT=430, MEMBER=431, 
97  		MEMORY=432, MERGE=433, MESSAGE_TEXT=434, MICROSECOND=435, MIDDLEINT=436, 
98  		MIGRATE=437, MINUTE=438, MINUTE_MICROSECOND=439, MINUTE_SECOND=440, MIN_ROWS=441, 
99  		MOD=442, MODE=443, MODIFIES=444, MODIFY=445, MONTH=446, MULTILINESTRING=447, 
100 		MULTIPOINT=448, MULTIPOLYGON=449, MUTEX=450, MYSQL_ERRNO=451, NAME=452, 
101 		NAMES=453, NATIONAL=454, NATIONAL_CHAR=455, NATIONAL_CHAR_VARYING=456, 
102 		NATURAL=457, NCHAR=458, NDBCLUSTER=459, NESTED=460, NETWORK_NAMESPACE=461, 
103 		NEVER=462, NEW=463, NEXT=464, NO=465, NODEGROUP=466, NONE=467, SHARED=468, 
104 		EXCLUSIVE=469, NOT=470, NOWAIT=471, NO_WAIT=472, NO_WRITE_TO_BINLOG=473, 
105 		NTH_VALUE=474, NTILE=475, NULL=476, NULLS=477, NUMBER=478, NUMERIC=479, 
106 		NVARCHAR=480, OF=481, OFF=482, OFFSET=483, OJ=484, OLD=485, ON=486, ONE=487, 
107 		ONLY=488, OPEN=489, OPTIMIZE=490, OPTIMIZER_COSTS=491, OPTION=492, OPTIONAL=493, 
108 		OPTIONALLY=494, OPTIONS=495, OR=496, ORDER=497, ORDINALITY=498, ORGANIZATION=499, 
109 		OTHERS=500, OUT=501, OUTER=502, OUTFILE=503, OVER=504, OWNER=505, PACK_KEYS=506, 
110 		PAGE=507, PARSER=508, PARTIAL=509, PARTITION=510, PARTITIONING=511, PARTITIONS=512, 
111 		PASSWORD=513, PASSWORD_LOCK_TIME=514, PATH=515, PERCENT_RANK=516, PERSIST=517, 
112 		PERSIST_ONLY=518, PHASE=519, PLUGIN=520, PLUGINS=521, PLUGIN_DIR=522, 
113 		POINT=523, POLYGON=524, PORT=525, PRECEDES=526, PRECEDING=527, PRECISION=528, 
114 		PREPARE=529, PRESERVE=530, PREV=531, PRIMARY=532, PRIVILEGES=533, PRIVILEGE_CHECKS_USER=534, 
115 		PROCEDURE=535, PROCESS=536, PROCESSLIST=537, PROFILE=538, PROFILES=539, 
116 		PROXY=540, PURGE=541, QUARTER=542, QUERY=543, QUICK=544, RANDOM=545, RANGE=546, 
117 		RANK=547, READ=548, READS=549, READ_ONLY=550, READ_WRITE=551, REAL=552, 
118 		REBUILD=553, RECOVER=554, RECURSIVE=555, REDO_BUFFER_SIZE=556, REDUNDANT=557, 
119 		REFERENCE=558, REFERENCES=559, REGEXP=560, RELAY=561, RELAYLOG=562, RELAY_LOG_FILE=563, 
120 		RELAY_LOG_POS=564, RELAY_THREAD=565, RELEASE=566, RELOAD=567, REMOVE=568, 
121 		RENAME=569, REORGANIZE=570, REPAIR=571, REPEAT=572, REPEATABLE=573, REPLACE=574, 
122 		REPLICA=575, REPLICAS=576, REPLICATE_DO_DB=577, REPLICATE_DO_TABLE=578, 
123 		REPLICATE_IGNORE_DB=579, REPLICATE_IGNORE_TABLE=580, REPLICATE_REWRITE_DB=581, 
124 		REPLICATE_WILD_DO_TABLE=582, REPLICATE_WILD_IGNORE_TABLE=583, REPLICATION=584, 
125 		REQUIRE=585, REQUIRE_ROW_FORMAT=586, REQUIRE_TABLE_PRIMARY_KEY_CHECK=587, 
126 		RESET=588, RESIGNAL=589, RESOURCE=590, RESPECT=591, RESTART=592, RESTORE=593, 
127 		RESTRICT=594, RESUME=595, RETAIN=596, RETURN=597, RETURNED_SQLSTATE=598, 
128 		RETURNING=599, RETURNS=600, REUSE=601, REVERSE=602, REVOKE=603, RIGHT=604, 
129 		RLIKE=605, ROLE=606, ROLLBACK=607, ROLLUP=608, ROTATE=609, ROUTINE=610, 
130 		ROW=611, ROWS=612, ROW_COUNT=613, ROW_FORMAT=614, ROW_NUMBER=615, RTREE=616, 
131 		SAVEPOINT=617, SCHEDULE=618, SCHEMA=619, SCHEMAS=620, SCHEMA_NAME=621, 
132 		SECOND=622, SECONDARY=623, SECONDARY_ENGINE=624, SECONDARY_ENGINE_ATTRIBUTE=625, 
133 		SECONDARY_LOAD=626, SECONDARY_UNLOAD=627, SECOND_MICROSECOND=628, SECURITY=629, 
134 		SELECT=630, SENSITIVE=631, SEPARATOR=632, SERIAL=633, SERIALIZABLE=634, 
135 		SERVER=635, SESSION=636, SET=637, SHARE=638, SHOW=639, SHUTDOWN=640, SIGNAL=641, 
136 		SIGNED=642, SIGNED_INT=643, SIGNED_INTEGER=644, SIMPLE=645, SKIP_SYMBOL=646, 
137 		SLAVE=647, SLOW=648, SMALLINT=649, SNAPSHOT=650, SOCKET=651, SONAME=652, 
138 		SOUNDS=653, SOURCE=654, SPATIAL=655, SPECIFIC=656, SQL=657, SQLEXCEPTION=658, 
139 		SQLSTATE=659, SQLWARNING=660, SQL_AFTER_GTIDS=661, SQL_AFTER_MTS_GAPS=662, 
140 		SQL_BEFORE_GTIDS=663, SQL_BIG_RESULT=664, SQL_BUFFER_RESULT=665, SQL_CALC_FOUND_ROWS=666, 
141 		SQL_NO_CACHE=667, SQL_SMALL_RESULT=668, SQL_THREAD=669, SRID=670, SSL=671, 
142 		STACKED=672, START=673, STARTING=674, STARTS=675, STATS_AUTO_RECALC=676, 
143 		STATS_PERSISTENT=677, STATS_SAMPLE_PAGES=678, STATUS=679, STOP=680, STORAGE=681, 
144 		STORED=682, STRAIGHT_JOIN=683, STREAM=684, STRING=685, SUBCLASS_ORIGIN=686, 
145 		SUBJECT=687, SUBPARTITION=688, SUBPARTITIONS=689, SUPER=690, SUSPEND=691, 
146 		SWAPS=692, SWITCHES=693, SYSTEM=694, SOURCE_BIND=695, SOURCE_HOST=696, 
147 		SOURCE_USER=697, SOURCE_PASSWORD=698, SOURCE_PORT=699, SOURCE_LOG_FILE=700, 
148 		SOURCE_LOG_POS=701, SOURCE_AUTO_POSITION=702, SOURCE_HEARTBEAT_PERIOD=703, 
149 		SOURCE_CONNECT_RETRY=704, SOURCE_RETRY_COUNT=705, SOURCE_CONNECTION_AUTO_FAILOVER=706, 
150 		SOURCE_DELAY=707, SOURCE_COMPRESSION_ALGORITHMS=708, SOURCE_ZSTD_COMPRESSION_LEVEL=709, 
151 		SOURCE_SSL=710, SOURCE_SSL_CA=711, SOURCE_SSL_CAPATH=712, SOURCE_SSL_CERT=713, 
152 		SOURCE_SSL_CRL=714, SOURCE_SSL_CRLPATH=715, SOURCE_SSL_KEY=716, SOURCE_SSL_CIPHER=717, 
153 		SOURCE_SSL_VERIFY_SERVER_CERT=718, SOURCE_TLS_VERSION=719, SOURCE_TLS_CIPHERSUITES=720, 
154 		SOURCE_PUBLIC_KEY_PATH=721, TABLE=722, TABLES=723, TABLESPACE=724, TABLE_CHECKSUM=725, 
155 		TABLE_NAME=726, TEMPORARY=727, TEMPTABLE=728, TERMINATED=729, TEXT=730, 
156 		THAN=731, THEN=732, THREAD_PRIORITY=733, TIES=734, TIME=735, TIMESTAMP=736, 
157 		TIMESTAMP_ADD=737, TIMESTAMP_DIFF=738, TINYBLOB=739, TINYINT=740, TINYTEXT=741, 
158 		TLS=742, TO=743, TRAILING=744, TRANSACTION=745, TRIGGER=746, TRIGGERS=747, 
159 		TRUE=748, TRUNCATE=749, TYPE=750, TYPES=751, UNBOUNDED=752, UNCOMMITTED=753, 
160 		UNDEFINED=754, UNDO=755, UNDOFILE=756, UNDO_BUFFER_SIZE=757, UNICODE=758, 
161 		UNINSTALL=759, UNION=760, UNIQUE=761, UNKNOWN=762, UNLOCK=763, UNSIGNED=764, 
162 		UNSIGNED_INT=765, UNSIGNED_INTEGER=766, UNTIL=767, UPDATE=768, UPGRADE=769, 
163 		USAGE=770, USE=771, USER=772, USER_RESOURCES=773, USE_FRM=774, USING=775, 
164 		UTC_DATE=776, UTC_TIME=777, UTC_TIMESTAMP=778, VALIDATION=779, VALUE=780, 
165 		VALUES=781, VARBINARY=782, VARCHAR=783, VARCHARACTER=784, VARIABLES=785, 
166 		VARYING=786, VCPU=787, VIEW=788, VIRTUAL=789, VISIBLE=790, WAIT=791, WARNINGS=792, 
167 		WEEK=793, WEIGHT_STRING=794, WHEN=795, WHERE=796, WHILE=797, WINDOW=798, 
168 		WITH=799, WITHOUT=800, WORK=801, WRAPPER=802, WRITE=803, X509=804, XA=805, 
169 		XID=806, XML=807, XOR=808, YEAR=809, YEAR_MONTH=810, ZEROFILL=811, JSON_ARRAY=812, 
170 		JSON_ARRAY_APPEND=813, JSON_ARRAY_INSERT=814, JSON_CONTAINS=815, JSON_CONTAINS_PATH=816, 
171 		JSON_DEPTH=817, JSON_EXTRACT=818, JSON_INSERT=819, JSON_KEYS=820, JSON_LENGTH=821, 
172 		JSON_MERGE=822, JSON_MERGE_PATCH=823, JSON_MERGE_PRESERVE=824, JSON_OBJECT=825, 
173 		JSON_OVERLAPS=826, JSON_PRETTY=827, JSON_QUOTE=828, JSON_REMOVE=829, JSON_REPLACE=830, 
174 		JSON_SCHEMA_VALID=831, JSON_SCHEMA_VALIDATION_REPORT=832, JSON_SEARCH=833, 
175 		JSON_SET=834, JSON_STORAGE_FREE=835, JSON_STORAGE_SIZE=836, JSON_TYPE=837, 
176 		JSON_UNQUOTE=838, JSON_VALID=839, ZONE=840, FILESIZE_LITERAL=841, SINGLE_QUOTED_TEXT=842, 
177 		DOUBLE_QUOTED_TEXT=843, BQUOTA_STRING=844, NCHAR_TEXT=845, UNDERSCORE_CHARSET=846, 
178 		NUMBER_=847, INT_NUM_=848, FLOAT_NUM_=849, DECIMAL_NUM_=850, HEX_DIGIT_=851, 
179 		BIT_NUM_=852, IDENTIFIER_=853, IP_ADDRESS=854, NOT_SUPPORT_=855;
180 	public static final int
181 		RULE_execute = 0, RULE_insert = 1, RULE_insertSpecification = 2, RULE_insertValuesClause = 3, 
182 		RULE_fields = 4, RULE_insertIdentifier = 5, RULE_tableWild = 6, RULE_insertSelectClause = 7, 
183 		RULE_onDuplicateKeyClause = 8, RULE_valueReference = 9, RULE_derivedColumns = 10, 
184 		RULE_update = 11, RULE_updateSpecification_ = 12, RULE_assignment = 13, 
185 		RULE_setAssignmentsClause = 14, RULE_assignmentValues = 15, RULE_assignmentValue = 16, 
186 		RULE_blobValue = 17, RULE_delete = 18, RULE_deleteSpecification = 19, 
187 		RULE_singleTableClause = 20, RULE_multipleTablesClause = 21, RULE_select = 22, 
188 		RULE_selectWithInto = 23, RULE_queryExpression = 24, RULE_queryExpressionBody = 25, 
189 		RULE_combineClause = 26, RULE_queryExpressionParens = 27, RULE_queryPrimary = 28, 
190 		RULE_querySpecification = 29, RULE_tableStatement = 30, RULE_tableValueConstructor = 31, 
191 		RULE_rowConstructorList = 32, RULE_withClause = 33, RULE_cteClause = 34, 
192 		RULE_selectSpecification = 35, RULE_duplicateSpecification = 36, RULE_projections = 37, 
193 		RULE_projection = 38, RULE_unqualifiedShorthand = 39, RULE_qualifiedShorthand = 40, 
194 		RULE_fromClause = 41, RULE_tableReferences = 42, RULE_escapedTableReference = 43, 
195 		RULE_tableReference = 44, RULE_tableFactor = 45, RULE_partitionNames = 46, 
196 		RULE_indexHintList = 47, RULE_indexHint = 48, RULE_joinedTable = 49, RULE_innerJoinType = 50, 
197 		RULE_outerJoinType = 51, RULE_naturalJoinType = 52, RULE_joinSpecification = 53, 
198 		RULE_whereClause = 54, RULE_groupByClause = 55, RULE_havingClause = 56, 
199 		RULE_limitClause = 57, RULE_limitRowCount = 58, RULE_limitOffset = 59, 
200 		RULE_windowClause = 60, RULE_windowItem = 61, RULE_subquery = 62, RULE_selectLinesInto = 63, 
201 		RULE_selectFieldsInto = 64, RULE_selectIntoExpression = 65, RULE_lockClause = 66, 
202 		RULE_lockClauseList = 67, RULE_lockStrength = 68, RULE_lockedRowAction = 69, 
203 		RULE_tableLockingList = 70, RULE_tableIdentOptWild = 71, RULE_tableAliasRefList = 72, 
204 		RULE_parameterMarker = 73, RULE_customKeyword = 74, RULE_literals = 75, 
205 		RULE_string_ = 76, RULE_stringLiterals = 77, RULE_numberLiterals = 78, 
206 		RULE_temporalLiterals = 79, RULE_hexadecimalLiterals = 80, RULE_bitValueLiterals = 81, 
207 		RULE_booleanLiterals = 82, RULE_nullValueLiterals = 83, RULE_collationName = 84, 
208 		RULE_identifier = 85, RULE_identifierKeywordsUnambiguous = 86, RULE_identifierKeywordsAmbiguous1RolesAndLabels = 87, 
209 		RULE_identifierKeywordsAmbiguous2Labels = 88, RULE_identifierKeywordsAmbiguous3Roles = 89, 
210 		RULE_identifierKeywordsAmbiguous4SystemVariables = 90, RULE_textOrIdentifier = 91, 
211 		RULE_ipAddress = 92, RULE_variable = 93, RULE_userVariable = 94, RULE_systemVariable = 95, 
212 		RULE_rvalueSystemVariable = 96, RULE_setSystemVariable = 97, RULE_optionType = 98, 
213 		RULE_internalVariableName = 99, RULE_setExprOrDefault = 100, RULE_transactionCharacteristics = 101, 
214 		RULE_isolationLevel = 102, RULE_isolationTypes = 103, RULE_transactionAccessMode = 104, 
215 		RULE_schemaName = 105, RULE_schemaNames = 106, RULE_charsetName = 107, 
216 		RULE_schemaPairs = 108, RULE_schemaPair = 109, RULE_tableName = 110, RULE_columnName = 111, 
217 		RULE_indexName = 112, RULE_constraintName = 113, RULE_oldColumn = 114, 
218 		RULE_newColumn = 115, RULE_delimiterName = 116, RULE_userIdentifierOrText = 117, 
219 		RULE_username = 118, RULE_eventName = 119, RULE_serverName = 120, RULE_wrapperName = 121, 
220 		RULE_functionName = 122, RULE_procedureName = 123, RULE_viewName = 124, 
221 		RULE_owner = 125, RULE_alias = 126, RULE_name = 127, RULE_tableList = 128, 
222 		RULE_viewNames = 129, RULE_columnNames = 130, RULE_groupName = 131, RULE_routineName = 132, 
223 		RULE_shardLibraryName = 133, RULE_componentName = 134, RULE_pluginName = 135, 
224 		RULE_hostname = 136, RULE_port = 137, RULE_cloneInstance = 138, RULE_cloneDir = 139, 
225 		RULE_channelName = 140, RULE_logName = 141, RULE_roleName = 142, RULE_roleIdentifierOrText = 143, 
226 		RULE_engineRef = 144, RULE_triggerName = 145, RULE_triggerTime = 146, 
227 		RULE_tableOrTables = 147, RULE_userOrRole = 148, RULE_partitionName = 149, 
228 		RULE_identifierList = 150, RULE_allOrPartitionNameList = 151, RULE_triggerEvent = 152, 
229 		RULE_triggerOrder = 153, RULE_expr = 154, RULE_andOperator = 155, RULE_orOperator = 156, 
230 		RULE_notOperator = 157, RULE_booleanPrimary = 158, RULE_assignmentOperator = 159, 
231 		RULE_comparisonOperator = 160, RULE_predicate = 161, RULE_bitExpr = 162, 
232 		RULE_simpleExpr = 163, RULE_path = 164, RULE_onEmptyError = 165, RULE_columnRef = 166, 
233 		RULE_columnRefList = 167, RULE_functionCall = 168, RULE_udfFunction = 169, 
234 		RULE_aggregationFunction = 170, RULE_jsonFunction = 171, RULE_jsonFunctionName = 172, 
235 		RULE_aggregationFunctionName = 173, RULE_distinct = 174, RULE_overClause = 175, 
236 		RULE_windowSpecification = 176, RULE_frameClause = 177, RULE_frameStart = 178, 
237 		RULE_frameEnd = 179, RULE_frameBetween = 180, RULE_specialFunction = 181, 
238 		RULE_currentUserFunction = 182, RULE_groupConcatFunction = 183, RULE_windowFunction = 184, 
239 		RULE_windowingClause = 185, RULE_leadLagInfo = 186, RULE_nullTreatment = 187, 
240 		RULE_checkType = 188, RULE_repairType = 189, RULE_castFunction = 190, 
241 		RULE_convertFunction = 191, RULE_castType = 192, RULE_positionFunction = 193, 
242 		RULE_substringFunction = 194, RULE_extractFunction = 195, RULE_charFunction = 196, 
243 		RULE_trimFunction = 197, RULE_valuesFunction = 198, RULE_weightStringFunction = 199, 
244 		RULE_levelClause = 200, RULE_levelInWeightListElement = 201, RULE_regularFunction = 202, 
245 		RULE_shorthandRegularFunction = 203, RULE_completeRegularFunction = 204, 
246 		RULE_regularFunctionName = 205, RULE_matchExpression = 206, RULE_matchSearchModifier = 207, 
247 		RULE_caseExpression = 208, RULE_datetimeExpr = 209, RULE_binaryLogFileIndexNumber = 210, 
248 		RULE_caseWhen = 211, RULE_caseElse = 212, RULE_intervalExpression = 213, 
249 		RULE_intervalValue = 214, RULE_intervalUnit = 215, RULE_orderByClause = 216, 
250 		RULE_orderByItem = 217, RULE_dataType = 218, RULE_stringList = 219, RULE_textString = 220, 
251 		RULE_textStringHash = 221, RULE_fieldOptions = 222, RULE_precision = 223, 
252 		RULE_typeDatetimePrecision = 224, RULE_charsetWithOptBinary = 225, RULE_ascii = 226, 
253 		RULE_unicode = 227, RULE_charset = 228, RULE_defaultCollation = 229, RULE_defaultEncryption = 230, 
254 		RULE_defaultCharset = 231, RULE_now = 232, RULE_columnFormat = 233, RULE_storageMedia = 234, 
255 		RULE_direction = 235, RULE_keyOrIndex = 236, RULE_fieldLength = 237, RULE_characterSet = 238, 
256 		RULE_collateClause = 239, RULE_fieldOrVarSpec = 240, RULE_ifNotExists = 241, 
257 		RULE_ifExists = 242, RULE_connectionId = 243, RULE_labelName = 244, RULE_cursorName = 245, 
258 		RULE_conditionName = 246, RULE_combineOption = 247, RULE_noWriteToBinLog = 248, 
259 		RULE_channelOption = 249;
260 	private static String[] makeRuleNames() {
261 		return new String[] {
262 			"execute", "insert", "insertSpecification", "insertValuesClause", "fields", 
263 			"insertIdentifier", "tableWild", "insertSelectClause", "onDuplicateKeyClause", 
264 			"valueReference", "derivedColumns", "update", "updateSpecification_", 
265 			"assignment", "setAssignmentsClause", "assignmentValues", "assignmentValue", 
266 			"blobValue", "delete", "deleteSpecification", "singleTableClause", "multipleTablesClause", 
267 			"select", "selectWithInto", "queryExpression", "queryExpressionBody", 
268 			"combineClause", "queryExpressionParens", "queryPrimary", "querySpecification", 
269 			"tableStatement", "tableValueConstructor", "rowConstructorList", "withClause", 
270 			"cteClause", "selectSpecification", "duplicateSpecification", "projections", 
271 			"projection", "unqualifiedShorthand", "qualifiedShorthand", "fromClause", 
272 			"tableReferences", "escapedTableReference", "tableReference", "tableFactor", 
273 			"partitionNames", "indexHintList", "indexHint", "joinedTable", "innerJoinType", 
274 			"outerJoinType", "naturalJoinType", "joinSpecification", "whereClause", 
275 			"groupByClause", "havingClause", "limitClause", "limitRowCount", "limitOffset", 
276 			"windowClause", "windowItem", "subquery", "selectLinesInto", "selectFieldsInto", 
277 			"selectIntoExpression", "lockClause", "lockClauseList", "lockStrength", 
278 			"lockedRowAction", "tableLockingList", "tableIdentOptWild", "tableAliasRefList", 
279 			"parameterMarker", "customKeyword", "literals", "string_", "stringLiterals", 
280 			"numberLiterals", "temporalLiterals", "hexadecimalLiterals", "bitValueLiterals", 
281 			"booleanLiterals", "nullValueLiterals", "collationName", "identifier", 
282 			"identifierKeywordsUnambiguous", "identifierKeywordsAmbiguous1RolesAndLabels", 
283 			"identifierKeywordsAmbiguous2Labels", "identifierKeywordsAmbiguous3Roles", 
284 			"identifierKeywordsAmbiguous4SystemVariables", "textOrIdentifier", "ipAddress", 
285 			"variable", "userVariable", "systemVariable", "rvalueSystemVariable", 
286 			"setSystemVariable", "optionType", "internalVariableName", "setExprOrDefault", 
287 			"transactionCharacteristics", "isolationLevel", "isolationTypes", "transactionAccessMode", 
288 			"schemaName", "schemaNames", "charsetName", "schemaPairs", "schemaPair", 
289 			"tableName", "columnName", "indexName", "constraintName", "oldColumn", 
290 			"newColumn", "delimiterName", "userIdentifierOrText", "username", "eventName", 
291 			"serverName", "wrapperName", "functionName", "procedureName", "viewName", 
292 			"owner", "alias", "name", "tableList", "viewNames", "columnNames", "groupName", 
293 			"routineName", "shardLibraryName", "componentName", "pluginName", "hostname", 
294 			"port", "cloneInstance", "cloneDir", "channelName", "logName", "roleName", 
295 			"roleIdentifierOrText", "engineRef", "triggerName", "triggerTime", "tableOrTables", 
296 			"userOrRole", "partitionName", "identifierList", "allOrPartitionNameList", 
297 			"triggerEvent", "triggerOrder", "expr", "andOperator", "orOperator", 
298 			"notOperator", "booleanPrimary", "assignmentOperator", "comparisonOperator", 
299 			"predicate", "bitExpr", "simpleExpr", "path", "onEmptyError", "columnRef", 
300 			"columnRefList", "functionCall", "udfFunction", "aggregationFunction", 
301 			"jsonFunction", "jsonFunctionName", "aggregationFunctionName", "distinct", 
302 			"overClause", "windowSpecification", "frameClause", "frameStart", "frameEnd", 
303 			"frameBetween", "specialFunction", "currentUserFunction", "groupConcatFunction", 
304 			"windowFunction", "windowingClause", "leadLagInfo", "nullTreatment", 
305 			"checkType", "repairType", "castFunction", "convertFunction", "castType", 
306 			"positionFunction", "substringFunction", "extractFunction", "charFunction", 
307 			"trimFunction", "valuesFunction", "weightStringFunction", "levelClause", 
308 			"levelInWeightListElement", "regularFunction", "shorthandRegularFunction", 
309 			"completeRegularFunction", "regularFunctionName", "matchExpression", 
310 			"matchSearchModifier", "caseExpression", "datetimeExpr", "binaryLogFileIndexNumber", 
311 			"caseWhen", "caseElse", "intervalExpression", "intervalValue", "intervalUnit", 
312 			"orderByClause", "orderByItem", "dataType", "stringList", "textString", 
313 			"textStringHash", "fieldOptions", "precision", "typeDatetimePrecision", 
314 			"charsetWithOptBinary", "ascii", "unicode", "charset", "defaultCollation", 
315 			"defaultEncryption", "defaultCharset", "now", "columnFormat", "storageMedia", 
316 			"direction", "keyOrIndex", "fieldLength", "characterSet", "collateClause", 
317 			"fieldOrVarSpec", "ifNotExists", "ifExists", "connectionId", "labelName", 
318 			"cursorName", "conditionName", "combineOption", "noWriteToBinLog", "channelOption"
319 		};
320 	}
321 	public static final String[] ruleNames = makeRuleNames();
322 
323 	private static String[] makeLiteralNames() {
324 		return new String[] {
325 			null, null, null, "'&&'", "'||'", "'!'", "'~'", "'|'", "'&'", "'<<'", 
326 			"'>>'", "'^'", "'%'", "':'", "'+'", "'-'", "'*'", "'/'", "'\\'", "'.'", 
327 			"'.*'", "'<=>'", "'=='", "'='", null, "'>'", "'>='", "'<'", "'<='", "'#'", 
328 			"'('", "')'", "'{'", "'}'", "'['", "']'", "','", "'\"'", "'''", "'`'", 
329 			"'?'", "'@'", "';'", "':='", "'->'", "'->>'", null, null, null, null, 
330 			null, null, null, null, null, null, null, null, null, null, null, null, 
331 			null, null, null, null, null, null, "'INNODB'", "'REDO_LOG'", null, "'DO NOT MATCH ANY THING, JUST FOR GENERATOR'", 
332 			null, null, null, null, null, null, null, null, null, null, null, null, 
333 			null, null, null, null, null, null, null, null, null, null, null, null, 
334 			null, null, null, null, null, null, null, null, null, null, null, null, 
335 			null, null, null, null, null, null, null, null, null, null, null, null, 
336 			null, null, null, null, null, null, null, null, null, null, null, null, 
337 			null, null, null, null, null, null, null, null, null, null, null, null, 
338 			null, null, null, null, null, null, null, null, null, null, null, null, 
339 			null, null, null, null, null, null, null, null, null, null, null, null, 
340 			null, null, null, null, null, null, null, null, null, null, null, null, 
341 			null, null, null, null, null, null, null, null, null, null, null, null, 
342 			null, null, null, null, null, null, null, null, null, null, null, null, 
343 			null, null, null, null, null, null, null, null, null, null, null, null, 
344 			null, null, null, null, null, null, null, null, null, null, null, null, 
345 			null, null, null, null, null, null, null, null, null, null, null, null, 
346 			null, null, null, null, null, null, null, null, null, null, null, null, 
347 			null, null, null, null, null, null, null, null, null, null, null, null, 
348 			null, null, null, null, null, null, null, null, null, null, null, null, 
349 			null, null, null, null, null, null, null, null, null, null, null, null, 
350 			null, null, null, null, null, null, null, null, null, null, null, null, 
351 			null, null, null, null, null, null, null, null, null, null, null, null, 
352 			null, null, null, null, null, null, null, null, null, null, null, null, 
353 			null, null, null, null, null, null, null, null, null, null, null, null, 
354 			null, null, null, null, null, null, null, null, null, null, null, null, 
355 			null, null, null, null, null, null, null, null, null, null, null, null, 
356 			null, null, null, null, null, null, null, null, null, null, null, null, 
357 			null, null, null, null, null, null, null, null, null, null, null, null, 
358 			null, null, null, null, null, null, null, null, null, null, null, null, 
359 			null, null, null, null, null, null, null, null, null, null, null, null, 
360 			null, null, null, null, null, null, null, null, null, null, null, null, 
361 			null, null, null, null, null, null, null, null, null, null, null, null, 
362 			null, null, null, null, null, null, null, null, null, null, null, null, 
363 			null, null, null, null, null, null, null, null, null, null, null, null, 
364 			null, null, null, null, null, null, null, null, null, null, null, null, 
365 			null, null, null, null, null, null, null, null, null, null, null, null, 
366 			null, null, null, null, null, null, null, null, null, null, null, null, 
367 			null, null, null, null, null, null, null, null, null, null, null, null, 
368 			null, null, null, null, null, null, null, null, null, null, null, null, 
369 			null, null, null, null, null, null, null, null, null, null, null, null, 
370 			null, null, null, null, null, null, null, null, null, null, null, null, 
371 			null, null, null, null, null, null, null, null, null, null, null, null, 
372 			null, null, null, null, null, null, null, null, null, null, null, null, 
373 			null, null, null, null, null, null, null, null, null, null, null, null, 
374 			null, null, null, null, null, null, null, null, null, null, null, null, 
375 			null, null, null, null, null, null, null, null, null, null, null, null, 
376 			null, null, null, null, null, null, null, null, null, null, null, null, 
377 			null, null, null, null, null, null, null, null, null, null, null, null, 
378 			null, null, null, null, null, null, null, null, null, null, null, null, 
379 			null, null, null, null, null, null, null, null, null, null, null, null, 
380 			null, null, null, null, null, null, null, null, null, null, null, null, 
381 			null, null, null, null, null, null, null, null, null, null, null, null, 
382 			null, null, null, null, null, null, null, null, null, null, null, null, 
383 			null, null, null, null, null, null, null, null, null, null, null, null, 
384 			null, null, null, null, null, null, null, null, null, null, null, null, 
385 			null, null, null, null, null, null, null, null, null, null, null, null, 
386 			null, null, null, null, null, null, null, null, null, null, null, null, 
387 			null, null, null, null, null, null, null, null, null, null, null, null, 
388 			null, null, null, null, null, null, null, null, null, null, null, null, 
389 			null, null, null, null, null, null, null, null, null, null, null, null, 
390 			null, null, null, null, null, null, null, null, null, null, null, null, 
391 			null, null, null, null, null, null, null, null, null, null, null, null, 
392 			null, null, null, null, null, null, null, null, null, null, null, null, 
393 			null, null, null, null, null, null, null, null, null, null, null, null, 
394 			null, null, null, null, null, null, null, null, null, null, null, null, 
395 			null, null, null, null, null, null, null, null, null, null, null, null, 
396 			null, null, null, null, null, null, null, null, null, null, null, null, 
397 			null, null, null, "'not support'"
398 		};
399 	}
400 	private static final String[] _LITERAL_NAMES = makeLiteralNames();
401 	private static String[] makeSymbolicNames() {
402 		return new String[] {
403 			null, "BLOCK_COMMENT", "INLINE_COMMENT", "AND_", "OR_", "NOT_", "TILDE_", 
404 			"VERTICAL_BAR_", "AMPERSAND_", "SIGNED_LEFT_SHIFT_", "SIGNED_RIGHT_SHIFT_", 
405 			"CARET_", "MOD_", "COLON_", "PLUS_", "MINUS_", "ASTERISK_", "SLASH_", 
406 			"BACKSLASH_", "DOT_", "DOT_ASTERISK_", "SAFE_EQ_", "DEQ_", "EQ_", "NEQ_", 
407 			"GT_", "GTE_", "LT_", "LTE_", "POUND_", "LP_", "RP_", "LBE_", "RBE_", 
408 			"LBT_", "RBT_", "COMMA_", "DQ_", "SQ_", "BQ_", "QUESTION_", "AT_", "SEMI_", 
409 			"ASSIGNMENT_", "JSON_SEPARATOR", "JSON_UNQUOTED_SEPARATOR", "WS", "MAX", 
410 			"MIN", "SUM", "COUNT", "GROUP_CONCAT", "CAST", "POSITION", "SUBSTRING", 
411 			"SUBSTR", "EXTRACT", "TRIM", "LAST_DAY", "TRADITIONAL", "TREE", "MYSQL_MAIN", 
412 			"MYSQL_ADMIN", "INSTANT", "INPLACE", "COPY", "UL_BINARY", "AUTOCOMMIT", 
413 			"INNODB", "REDO_LOG", "DELIMITER", "FOR_GENERATOR", "ACCESSIBLE", "ACCOUNT", 
414 			"ACTION", "ACTIVE", "ADD", "ADMIN", "AFTER", "AGAINST", "AGGREGATE", 
415 			"ALGORITHM", "ALL", "ALTER", "ALWAYS", "ANALYZE", "AND", "ANY", "ARRAY", 
416 			"AS", "ASC", "ASCII", "ASENSITIVE", "AT", "ATTRIBUTE", "AUTOEXTEND_SIZE", 
417 			"AUTO_INCREMENT", "AVG", "ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS", "BIT_XOR", 
418 			"AVG_ROW_LENGTH", "BACKUP", "BEFORE", "BEGIN", "BETWEEN", "BIGINT", "BINARY", 
419 			"BINLOG", "BIT", "BLOB", "BLOCK", "BOOL", "BOOLEAN", "BOTH", "BTREE", 
420 			"BUCKETS", "BY", "BYTE", "CACHE", "CALL", "CASCADE", "CASCADED", "CASE", 
421 			"CATALOG_NAME", "CHAIN", "CHANGE", "CHANGED", "CHANNEL", "CHAR", "CHAR_VARYING", 
422 			"CHARACTER", "CHARACTER_VARYING", "CHARSET", "CHECK", "CHECKSUM", "CIPHER", 
423 			"CLASS_ORIGIN", "CLIENT", "CLONE", "CLOSE", "COALESCE", "CODE", "COLLATE", 
424 			"COLLATION", "COLUMN", "COLUMNS", "COLUMN_FORMAT", "COLUMN_NAME", "COMMENT", 
425 			"COMMIT", "COMMITTED", "COMPACT", "COMPLETION", "COMPONENT", "COMPRESSED", 
426 			"COMPRESSION", "CONCURRENT", "CONDITION", "CONNECTION", "CONSISTENT", 
427 			"CONSTRAINT", "CONSTRAINT_CATALOG", "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", 
428 			"CONTAINS", "CONTEXT", "CONTINUE", "CONVERT", "CPU", "CREATE", "CROSS", 
429 			"CUBE", "CUME_DIST", "CURRENT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", 
430 			"CURRENT_USER", "CURSOR", "CURSOR_NAME", "DATA", "DATABASE", "DATABASES", 
431 			"DATAFILE", "DATE", "DATETIME", "DAY", "DAY_HOUR", "DAY_MICROSECOND", 
432 			"DAY_MINUTE", "DAY_SECOND", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", 
433 			"DEFAULT", "DEFAULT_AUTH", "DEFINER", "DEFINITION", "DELAYED", "DELAY_KEY_WRITE", 
434 			"DELETE", "DENSE_RANK", "DESC", "DESCRIBE", "DESCRIPTION", "DETERMINISTIC", 
435 			"DIAGNOSTICS", "DIRECTORY", "DISABLE", "DISCARD", "DISK", "DISTINCT", 
436 			"DISTINCTROW", "DIV", "DO", "DOUBLE", "DROP", "DUAL", "DUMPFILE", "DUPLICATE", 
437 			"DYNAMIC", "EACH", "ELSE", "ELSEIF", "EMPTY", "ENABLE", "ENCLOSED", "ENCRYPTION", 
438 			"END", "ENDS", "ENFORCED", "ENGINE", "ENGINES", "ENGINE_ATTRIBUTE", "ENUM", 
439 			"ERROR", "ERRORS", "ESCAPE", "ESCAPED", "EVENT", "EVENTS", "EVERY", "EXCEPT", 
440 			"EXCHANGE", "EXCLUDE", "EXECUTE", "EXISTS", "EXIT", "EXPANSION", "EXPIRE", 
441 			"EXPLAIN", "EXPORT", "EXTENDED", "EXTENT_SIZE", "FAILED_LOGIN_ATTEMPTS", 
442 			"FALSE", "FAST", "FAULTS", "FETCH", "FILE", "FILE_BLOCK_SIZE", "FILTER", 
443 			"FIRST", "FIRST_VALUE", "FIXED", "FLOAT", "FLOAT4", "FLOAT8", "FLUSH", 
444 			"FOLLOWING", "FOLLOWS", "FOR", "FORCE", "FOREIGN", "FORMAT", "FOUND", 
445 			"FROM", "FULL", "FULLTEXT", "FUNCTION", "GENERAL", "GENERATED", "GEOMETRY", 
446 			"GEOMCOLLECTION", "GEOMETRYCOLLECTION", "GET", "GET_FORMAT", "GET_MASTER_PUBLIC_KEY", 
447 			"GLOBAL", "GRANT", "GRANTS", "GROUP", "GROUPING", "GROUPS", "GROUP_REPLICATION", 
448 			"GET_SOURCE_PUBLIC_KEY", "GTID_ONLY", "GENERATE", "HANDLER", "HASH", 
449 			"HAVING", "HELP", "HIGH_PRIORITY", "HISTOGRAM", "HISTORY", "HOST", "HOSTS", 
450 			"HOUR", "HOUR_MICROSECOND", "HOUR_MINUTE", "HOUR_SECOND", "IDENTIFIED", 
451 			"IF", "IGNORE", "IGNORE_SERVER_IDS", "IMPORT", "IN", "INACTIVE", "INDEX", 
452 			"INDEXES", "INFILE", "INITIAL_SIZE", "INNER", "INOUT", "INSENSITIVE", 
453 			"INSERT", "INSERT_METHOD", "INSTALL", "INSTANCE", "INT", "INT1", "INT2", 
454 			"INT3", "INT4", "INT8", "INTEGER", "INTERVAL", "INTO", "INVISIBLE", "INVOKER", 
455 			"IO", "IO_AFTER_GTIDS", "IO_BEFORE_GTIDS", "IPC", "IS", "ISOLATION", 
456 			"ISSUER", "ITERATE", "JOIN", "JSON", "JSON_TABLE", "JSON_VALUE", "KEY", 
457 			"KEYS", "KEY_BLOCK_SIZE", "KILL", "LAG", "LANGUAGE", "LAST", "LAST_VALUE", 
458 			"LATERAL", "LEAD", "LEADING", "LEAVE", "LEAVES", "LEFT", "LESS", "LEVEL", 
459 			"LIKE", "LIMIT", "LINEAR", "LINES", "LINESTRING", "LIST", "LOAD", "LOCAL", 
460 			"LOCALTIME", "LOCALTIMESTAMP", "LOCK", "LOCKED", "LOCKS", "LOGFILE", 
461 			"LOGS", "LONG", "LONGBLOB", "LONGTEXT", "LONG_CHAR_VARYING", "LONG_VARCHAR", 
462 			"LOOP", "LOW_PRIORITY", "MASTER", "MASTER_AUTO_POSITION", "MASTER_BIND", 
463 			"MASTER_COMPRESSION_ALGORITHM", "MASTER_CONNECT_RETRY", "MASTER_DELAY", 
464 			"MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", "MASTER_LOG_FILE", "MASTER_LOG_POS", 
465 			"MASTER_PASSWORD", "MASTER_PORT", "MASTER_PUBLIC_KEY_PATH", "MASTER_RETRY_COUNT", 
466 			"MASTER_SERVER_ID", "MASTER_SSL", "MASTER_SSL_CA", "MASTER_SSL_CAPATH", 
467 			"MASTER_SSL_CERT", "MASTER_SSL_CIPHER", "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", 
468 			"MASTER_SSL_KEY", "MASTER_SSL_VERIFY_SERVER_CERT", "MASTER_TLS_CIPHERSUITES", 
469 			"MASTER_TLS_VERSION", "MASTER_USER", "MASTER_ZSTD_COMPRESSION_LEVEL", 
470 			"MATCH", "MAXVALUE", "MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", 
471 			"MAX_ROWS", "MAX_SIZE", "MAX_UPDATES_PER_HOUR", "MAX_USER_CONNECTIONS", 
472 			"MEDIUM", "MEDIUMBLOB", "MEDIUMINT", "MEDIUMTEXT", "MEMBER", "MEMORY", 
473 			"MERGE", "MESSAGE_TEXT", "MICROSECOND", "MIDDLEINT", "MIGRATE", "MINUTE", 
474 			"MINUTE_MICROSECOND", "MINUTE_SECOND", "MIN_ROWS", "MOD", "MODE", "MODIFIES", 
475 			"MODIFY", "MONTH", "MULTILINESTRING", "MULTIPOINT", "MULTIPOLYGON", "MUTEX", 
476 			"MYSQL_ERRNO", "NAME", "NAMES", "NATIONAL", "NATIONAL_CHAR", "NATIONAL_CHAR_VARYING", 
477 			"NATURAL", "NCHAR", "NDBCLUSTER", "NESTED", "NETWORK_NAMESPACE", "NEVER", 
478 			"NEW", "NEXT", "NO", "NODEGROUP", "NONE", "SHARED", "EXCLUSIVE", "NOT", 
479 			"NOWAIT", "NO_WAIT", "NO_WRITE_TO_BINLOG", "NTH_VALUE", "NTILE", "NULL", 
480 			"NULLS", "NUMBER", "NUMERIC", "NVARCHAR", "OF", "OFF", "OFFSET", "OJ", 
481 			"OLD", "ON", "ONE", "ONLY", "OPEN", "OPTIMIZE", "OPTIMIZER_COSTS", "OPTION", 
482 			"OPTIONAL", "OPTIONALLY", "OPTIONS", "OR", "ORDER", "ORDINALITY", "ORGANIZATION", 
483 			"OTHERS", "OUT", "OUTER", "OUTFILE", "OVER", "OWNER", "PACK_KEYS", "PAGE", 
484 			"PARSER", "PARTIAL", "PARTITION", "PARTITIONING", "PARTITIONS", "PASSWORD", 
485 			"PASSWORD_LOCK_TIME", "PATH", "PERCENT_RANK", "PERSIST", "PERSIST_ONLY", 
486 			"PHASE", "PLUGIN", "PLUGINS", "PLUGIN_DIR", "POINT", "POLYGON", "PORT", 
487 			"PRECEDES", "PRECEDING", "PRECISION", "PREPARE", "PRESERVE", "PREV", 
488 			"PRIMARY", "PRIVILEGES", "PRIVILEGE_CHECKS_USER", "PROCEDURE", "PROCESS", 
489 			"PROCESSLIST", "PROFILE", "PROFILES", "PROXY", "PURGE", "QUARTER", "QUERY", 
490 			"QUICK", "RANDOM", "RANGE", "RANK", "READ", "READS", "READ_ONLY", "READ_WRITE", 
491 			"REAL", "REBUILD", "RECOVER", "RECURSIVE", "REDO_BUFFER_SIZE", "REDUNDANT", 
492 			"REFERENCE", "REFERENCES", "REGEXP", "RELAY", "RELAYLOG", "RELAY_LOG_FILE", 
493 			"RELAY_LOG_POS", "RELAY_THREAD", "RELEASE", "RELOAD", "REMOVE", "RENAME", 
494 			"REORGANIZE", "REPAIR", "REPEAT", "REPEATABLE", "REPLACE", "REPLICA", 
495 			"REPLICAS", "REPLICATE_DO_DB", "REPLICATE_DO_TABLE", "REPLICATE_IGNORE_DB", 
496 			"REPLICATE_IGNORE_TABLE", "REPLICATE_REWRITE_DB", "REPLICATE_WILD_DO_TABLE", 
497 			"REPLICATE_WILD_IGNORE_TABLE", "REPLICATION", "REQUIRE", "REQUIRE_ROW_FORMAT", 
498 			"REQUIRE_TABLE_PRIMARY_KEY_CHECK", "RESET", "RESIGNAL", "RESOURCE", "RESPECT", 
499 			"RESTART", "RESTORE", "RESTRICT", "RESUME", "RETAIN", "RETURN", "RETURNED_SQLSTATE", 
500 			"RETURNING", "RETURNS", "REUSE", "REVERSE", "REVOKE", "RIGHT", "RLIKE", 
501 			"ROLE", "ROLLBACK", "ROLLUP", "ROTATE", "ROUTINE", "ROW", "ROWS", "ROW_COUNT", 
502 			"ROW_FORMAT", "ROW_NUMBER", "RTREE", "SAVEPOINT", "SCHEDULE", "SCHEMA", 
503 			"SCHEMAS", "SCHEMA_NAME", "SECOND", "SECONDARY", "SECONDARY_ENGINE", 
504 			"SECONDARY_ENGINE_ATTRIBUTE", "SECONDARY_LOAD", "SECONDARY_UNLOAD", "SECOND_MICROSECOND", 
505 			"SECURITY", "SELECT", "SENSITIVE", "SEPARATOR", "SERIAL", "SERIALIZABLE", 
506 			"SERVER", "SESSION", "SET", "SHARE", "SHOW", "SHUTDOWN", "SIGNAL", "SIGNED", 
507 			"SIGNED_INT", "SIGNED_INTEGER", "SIMPLE", "SKIP_SYMBOL", "SLAVE", "SLOW", 
508 			"SMALLINT", "SNAPSHOT", "SOCKET", "SONAME", "SOUNDS", "SOURCE", "SPATIAL", 
509 			"SPECIFIC", "SQL", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQL_AFTER_GTIDS", 
510 			"SQL_AFTER_MTS_GAPS", "SQL_BEFORE_GTIDS", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT", 
511 			"SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE", "SQL_SMALL_RESULT", "SQL_THREAD", 
512 			"SRID", "SSL", "STACKED", "START", "STARTING", "STARTS", "STATS_AUTO_RECALC", 
513 			"STATS_PERSISTENT", "STATS_SAMPLE_PAGES", "STATUS", "STOP", "STORAGE", 
514 			"STORED", "STRAIGHT_JOIN", "STREAM", "STRING", "SUBCLASS_ORIGIN", "SUBJECT", 
515 			"SUBPARTITION", "SUBPARTITIONS", "SUPER", "SUSPEND", "SWAPS", "SWITCHES", 
516 			"SYSTEM", "SOURCE_BIND", "SOURCE_HOST", "SOURCE_USER", "SOURCE_PASSWORD", 
517 			"SOURCE_PORT", "SOURCE_LOG_FILE", "SOURCE_LOG_POS", "SOURCE_AUTO_POSITION", 
518 			"SOURCE_HEARTBEAT_PERIOD", "SOURCE_CONNECT_RETRY", "SOURCE_RETRY_COUNT", 
519 			"SOURCE_CONNECTION_AUTO_FAILOVER", "SOURCE_DELAY", "SOURCE_COMPRESSION_ALGORITHMS", 
520 			"SOURCE_ZSTD_COMPRESSION_LEVEL", "SOURCE_SSL", "SOURCE_SSL_CA", "SOURCE_SSL_CAPATH", 
521 			"SOURCE_SSL_CERT", "SOURCE_SSL_CRL", "SOURCE_SSL_CRLPATH", "SOURCE_SSL_KEY", 
522 			"SOURCE_SSL_CIPHER", "SOURCE_SSL_VERIFY_SERVER_CERT", "SOURCE_TLS_VERSION", 
523 			"SOURCE_TLS_CIPHERSUITES", "SOURCE_PUBLIC_KEY_PATH", "TABLE", "TABLES", 
524 			"TABLESPACE", "TABLE_CHECKSUM", "TABLE_NAME", "TEMPORARY", "TEMPTABLE", 
525 			"TERMINATED", "TEXT", "THAN", "THEN", "THREAD_PRIORITY", "TIES", "TIME", 
526 			"TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TINYBLOB", "TINYINT", 
527 			"TINYTEXT", "TLS", "TO", "TRAILING", "TRANSACTION", "TRIGGER", "TRIGGERS", 
528 			"TRUE", "TRUNCATE", "TYPE", "TYPES", "UNBOUNDED", "UNCOMMITTED", "UNDEFINED", 
529 			"UNDO", "UNDOFILE", "UNDO_BUFFER_SIZE", "UNICODE", "UNINSTALL", "UNION", 
530 			"UNIQUE", "UNKNOWN", "UNLOCK", "UNSIGNED", "UNSIGNED_INT", "UNSIGNED_INTEGER", 
531 			"UNTIL", "UPDATE", "UPGRADE", "USAGE", "USE", "USER", "USER_RESOURCES", 
532 			"USE_FRM", "USING", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", "VALIDATION", 
533 			"VALUE", "VALUES", "VARBINARY", "VARCHAR", "VARCHARACTER", "VARIABLES", 
534 			"VARYING", "VCPU", "VIEW", "VIRTUAL", "VISIBLE", "WAIT", "WARNINGS", 
535 			"WEEK", "WEIGHT_STRING", "WHEN", "WHERE", "WHILE", "WINDOW", "WITH", 
536 			"WITHOUT", "WORK", "WRAPPER", "WRITE", "X509", "XA", "XID", "XML", "XOR", 
537 			"YEAR", "YEAR_MONTH", "ZEROFILL", "JSON_ARRAY", "JSON_ARRAY_APPEND", 
538 			"JSON_ARRAY_INSERT", "JSON_CONTAINS", "JSON_CONTAINS_PATH", "JSON_DEPTH", 
539 			"JSON_EXTRACT", "JSON_INSERT", "JSON_KEYS", "JSON_LENGTH", "JSON_MERGE", 
540 			"JSON_MERGE_PATCH", "JSON_MERGE_PRESERVE", "JSON_OBJECT", "JSON_OVERLAPS", 
541 			"JSON_PRETTY", "JSON_QUOTE", "JSON_REMOVE", "JSON_REPLACE", "JSON_SCHEMA_VALID", 
542 			"JSON_SCHEMA_VALIDATION_REPORT", "JSON_SEARCH", "JSON_SET", "JSON_STORAGE_FREE", 
543 			"JSON_STORAGE_SIZE", "JSON_TYPE", "JSON_UNQUOTE", "JSON_VALID", "ZONE", 
544 			"FILESIZE_LITERAL", "SINGLE_QUOTED_TEXT", "DOUBLE_QUOTED_TEXT", "BQUOTA_STRING", 
545 			"NCHAR_TEXT", "UNDERSCORE_CHARSET", "NUMBER_", "INT_NUM_", "FLOAT_NUM_", 
546 			"DECIMAL_NUM_", "HEX_DIGIT_", "BIT_NUM_", "IDENTIFIER_", "IP_ADDRESS", 
547 			"NOT_SUPPORT_"
548 		};
549 	}
550 	private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
551 	public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
552 
553 	/**
554 	 * @deprecated Use {@link #VOCABULARY} instead.
555 	 */
556 	@Deprecated
557 	public static final String[] tokenNames;
558 	static {
559 		tokenNames = new String[_SYMBOLIC_NAMES.length];
560 		for (int i = 0; i < tokenNames.length; i++) {
561 			tokenNames[i] = VOCABULARY.getLiteralName(i);
562 			if (tokenNames[i] == null) {
563 				tokenNames[i] = VOCABULARY.getSymbolicName(i);
564 			}
565 
566 			if (tokenNames[i] == null) {
567 				tokenNames[i] = "<INVALID>";
568 			}
569 		}
570 	}
571 
572 	@Override
573 	@Deprecated
574 	public String[] getTokenNames() {
575 		return tokenNames;
576 	}
577 
578 	@Override
579 
580 	public Vocabulary getVocabulary() {
581 		return VOCABULARY;
582 	}
583 
584 	@Override
585 	public String getGrammarFileName() { return "HiveStatement.g4"; }
586 
587 	@Override
588 	public String[] getRuleNames() { return ruleNames; }
589 
590 	@Override
591 	public String getSerializedATN() { return _serializedATN; }
592 
593 	@Override
594 	public ATN getATN() { return _ATN; }
595 
596 	public HiveStatementParser(TokenStream input) {
597 		super(input);
598 		_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
599 	}
600 
601 	public static class ExecuteContext extends ParserRuleContext {
602 		public SelectContext select() {
603 			return getRuleContext(SelectContext.class,0);
604 		}
605 		public InsertContext insert() {
606 			return getRuleContext(InsertContext.class,0);
607 		}
608 		public UpdateContext update() {
609 			return getRuleContext(UpdateContext.class,0);
610 		}
611 		public DeleteContext delete() {
612 			return getRuleContext(DeleteContext.class,0);
613 		}
614 		public TerminalNode SEMI_() { return getToken(HiveStatementParser.SEMI_, 0); }
615 		public TerminalNode EOF() { return getToken(HiveStatementParser.EOF, 0); }
616 		public ExecuteContext(ParserRuleContext parent, int invokingState) {
617 			super(parent, invokingState);
618 		}
619 		@Override public int getRuleIndex() { return RULE_execute; }
620 		@Override
621 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
622 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitExecute(this);
623 			else return visitor.visitChildren(this);
624 		}
625 	}
626 
627 	public final ExecuteContext execute() throws RecognitionException {
628 		ExecuteContext _localctx = new ExecuteContext(_ctx, getState());
629 		enterRule(_localctx, 0, RULE_execute);
630 		try {
631 			setState(514);
632 			_errHandler.sync(this);
633 			switch (_input.LA(1)) {
634 			case LP_:
635 			case DELETE:
636 			case INSERT:
637 			case SELECT:
638 			case TABLE:
639 			case UPDATE:
640 			case VALUES:
641 			case WITH:
642 				enterOuterAlt(_localctx, 1);
643 				{
644 				setState(504);
645 				_errHandler.sync(this);
646 				switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) {
647 				case 1:
648 					{
649 					setState(500);
650 					select();
651 					}
652 					break;
653 				case 2:
654 					{
655 					setState(501);
656 					insert();
657 					}
658 					break;
659 				case 3:
660 					{
661 					setState(502);
662 					update();
663 					}
664 					break;
665 				case 4:
666 					{
667 					setState(503);
668 					delete();
669 					}
670 					break;
671 				}
672 				setState(511);
673 				_errHandler.sync(this);
674 				switch (_input.LA(1)) {
675 				case SEMI_:
676 					{
677 					setState(506);
678 					match(SEMI_);
679 					setState(508);
680 					_errHandler.sync(this);
681 					switch ( getInterpreter().adaptivePredict(_input,1,_ctx) ) {
682 					case 1:
683 						{
684 						setState(507);
685 						match(EOF);
686 						}
687 						break;
688 					}
689 					}
690 					break;
691 				case EOF:
692 					{
693 					setState(510);
694 					match(EOF);
695 					}
696 					break;
697 				default:
698 					throw new NoViableAltException(this);
699 				}
700 				}
701 				break;
702 			case EOF:
703 				enterOuterAlt(_localctx, 2);
704 				{
705 				setState(513);
706 				match(EOF);
707 				}
708 				break;
709 			default:
710 				throw new NoViableAltException(this);
711 			}
712 		}
713 		catch (RecognitionException re) {
714 			_localctx.exception = re;
715 			_errHandler.reportError(this, re);
716 			_errHandler.recover(this, re);
717 		}
718 		finally {
719 			exitRule();
720 		}
721 		return _localctx;
722 	}
723 
724 	public static class InsertContext extends ParserRuleContext {
725 		public TerminalNode INSERT() { return getToken(HiveStatementParser.INSERT, 0); }
726 		public InsertSpecificationContext insertSpecification() {
727 			return getRuleContext(InsertSpecificationContext.class,0);
728 		}
729 		public TableNameContext tableName() {
730 			return getRuleContext(TableNameContext.class,0);
731 		}
732 		public InsertValuesClauseContext insertValuesClause() {
733 			return getRuleContext(InsertValuesClauseContext.class,0);
734 		}
735 		public SetAssignmentsClauseContext setAssignmentsClause() {
736 			return getRuleContext(SetAssignmentsClauseContext.class,0);
737 		}
738 		public InsertSelectClauseContext insertSelectClause() {
739 			return getRuleContext(InsertSelectClauseContext.class,0);
740 		}
741 		public TerminalNode INTO() { return getToken(HiveStatementParser.INTO, 0); }
742 		public PartitionNamesContext partitionNames() {
743 			return getRuleContext(PartitionNamesContext.class,0);
744 		}
745 		public OnDuplicateKeyClauseContext onDuplicateKeyClause() {
746 			return getRuleContext(OnDuplicateKeyClauseContext.class,0);
747 		}
748 		public InsertContext(ParserRuleContext parent, int invokingState) {
749 			super(parent, invokingState);
750 		}
751 		@Override public int getRuleIndex() { return RULE_insert; }
752 		@Override
753 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
754 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitInsert(this);
755 			else return visitor.visitChildren(this);
756 		}
757 	}
758 
759 	public final InsertContext insert() throws RecognitionException {
760 		InsertContext _localctx = new InsertContext(_ctx, getState());
761 		enterRule(_localctx, 2, RULE_insert);
762 		int _la;
763 		try {
764 			enterOuterAlt(_localctx, 1);
765 			{
766 			setState(516);
767 			match(INSERT);
768 			setState(517);
769 			insertSpecification();
770 			setState(519);
771 			_errHandler.sync(this);
772 			_la = _input.LA(1);
773 			if (_la==INTO) {
774 				{
775 				setState(518);
776 				match(INTO);
777 				}
778 			}
779 
780 			setState(521);
781 			tableName();
782 			setState(523);
783 			_errHandler.sync(this);
784 			_la = _input.LA(1);
785 			if (_la==PARTITION) {
786 				{
787 				setState(522);
788 				partitionNames();
789 				}
790 			}
791 
792 			setState(528);
793 			_errHandler.sync(this);
794 			switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
795 			case 1:
796 				{
797 				setState(525);
798 				insertValuesClause();
799 				}
800 				break;
801 			case 2:
802 				{
803 				setState(526);
804 				setAssignmentsClause();
805 				}
806 				break;
807 			case 3:
808 				{
809 				setState(527);
810 				insertSelectClause();
811 				}
812 				break;
813 			}
814 			setState(531);
815 			_errHandler.sync(this);
816 			_la = _input.LA(1);
817 			if (_la==AS || _la==ON) {
818 				{
819 				setState(530);
820 				onDuplicateKeyClause();
821 				}
822 			}
823 
824 			}
825 		}
826 		catch (RecognitionException re) {
827 			_localctx.exception = re;
828 			_errHandler.reportError(this, re);
829 			_errHandler.recover(this, re);
830 		}
831 		finally {
832 			exitRule();
833 		}
834 		return _localctx;
835 	}
836 
837 	public static class InsertSpecificationContext extends ParserRuleContext {
838 		public TerminalNode IGNORE() { return getToken(HiveStatementParser.IGNORE, 0); }
839 		public TerminalNode LOW_PRIORITY() { return getToken(HiveStatementParser.LOW_PRIORITY, 0); }
840 		public TerminalNode DELAYED() { return getToken(HiveStatementParser.DELAYED, 0); }
841 		public TerminalNode HIGH_PRIORITY() { return getToken(HiveStatementParser.HIGH_PRIORITY, 0); }
842 		public InsertSpecificationContext(ParserRuleContext parent, int invokingState) {
843 			super(parent, invokingState);
844 		}
845 		@Override public int getRuleIndex() { return RULE_insertSpecification; }
846 		@Override
847 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
848 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitInsertSpecification(this);
849 			else return visitor.visitChildren(this);
850 		}
851 	}
852 
853 	public final InsertSpecificationContext insertSpecification() throws RecognitionException {
854 		InsertSpecificationContext _localctx = new InsertSpecificationContext(_ctx, getState());
855 		enterRule(_localctx, 4, RULE_insertSpecification);
856 		int _la;
857 		try {
858 			enterOuterAlt(_localctx, 1);
859 			{
860 			setState(534);
861 			_errHandler.sync(this);
862 			_la = _input.LA(1);
863 			if (_la==DELAYED || _la==HIGH_PRIORITY || _la==LOW_PRIORITY) {
864 				{
865 				setState(533);
866 				_la = _input.LA(1);
867 				if ( !(_la==DELAYED || _la==HIGH_PRIORITY || _la==LOW_PRIORITY) ) {
868 				_errHandler.recoverInline(this);
869 				}
870 				else {
871 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
872 					_errHandler.reportMatch(this);
873 					consume();
874 				}
875 				}
876 			}
877 
878 			setState(537);
879 			_errHandler.sync(this);
880 			_la = _input.LA(1);
881 			if (_la==IGNORE) {
882 				{
883 				setState(536);
884 				match(IGNORE);
885 				}
886 			}
887 
888 			}
889 		}
890 		catch (RecognitionException re) {
891 			_localctx.exception = re;
892 			_errHandler.reportError(this, re);
893 			_errHandler.recover(this, re);
894 		}
895 		finally {
896 			exitRule();
897 		}
898 		return _localctx;
899 	}
900 
901 	public static class InsertValuesClauseContext extends ParserRuleContext {
902 		public TerminalNode VALUES() { return getToken(HiveStatementParser.VALUES, 0); }
903 		public TerminalNode VALUE() { return getToken(HiveStatementParser.VALUE, 0); }
904 		public List<AssignmentValuesContext> assignmentValues() {
905 			return getRuleContexts(AssignmentValuesContext.class);
906 		}
907 		public AssignmentValuesContext assignmentValues(int i) {
908 			return getRuleContext(AssignmentValuesContext.class,i);
909 		}
910 		public RowConstructorListContext rowConstructorList() {
911 			return getRuleContext(RowConstructorListContext.class,0);
912 		}
913 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
914 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
915 		public ValueReferenceContext valueReference() {
916 			return getRuleContext(ValueReferenceContext.class,0);
917 		}
918 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
919 		public TerminalNode COMMA_(int i) {
920 			return getToken(HiveStatementParser.COMMA_, i);
921 		}
922 		public FieldsContext fields() {
923 			return getRuleContext(FieldsContext.class,0);
924 		}
925 		public InsertValuesClauseContext(ParserRuleContext parent, int invokingState) {
926 			super(parent, invokingState);
927 		}
928 		@Override public int getRuleIndex() { return RULE_insertValuesClause; }
929 		@Override
930 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
931 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitInsertValuesClause(this);
932 			else return visitor.visitChildren(this);
933 		}
934 	}
935 
936 	public final InsertValuesClauseContext insertValuesClause() throws RecognitionException {
937 		InsertValuesClauseContext _localctx = new InsertValuesClauseContext(_ctx, getState());
938 		enterRule(_localctx, 6, RULE_insertValuesClause);
939 		int _la;
940 		try {
941 			enterOuterAlt(_localctx, 1);
942 			{
943 			setState(544);
944 			_errHandler.sync(this);
945 			_la = _input.LA(1);
946 			if (_la==LP_) {
947 				{
948 				setState(539);
949 				match(LP_);
950 				setState(541);
951 				_errHandler.sync(this);
952 				_la = _input.LA(1);
953 				if (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (GROUP_CONCAT - 47)) | (1L << (CAST - 47)) | (1L << (POSITION - 47)) | (1L << (SUBSTRING - 47)) | (1L << (SUBSTR - 47)) | (1L << (EXTRACT - 47)) | (1L << (TRIM - 47)) | (1L << (LAST_DAY - 47)) | (1L << (TRADITIONAL - 47)) | (1L << (TREE - 47)) | (1L << (MYSQL_MAIN - 47)) | (1L << (MYSQL_ADMIN - 47)) | (1L << (INSTANT - 47)) | (1L << (INPLACE - 47)) | (1L << (COPY - 47)) | (1L << (UL_BINARY - 47)) | (1L << (AUTOCOMMIT - 47)) | (1L << (INNODB - 47)) | (1L << (REDO_LOG - 47)) | (1L << (ACCOUNT - 47)) | (1L << (ACTION - 47)) | (1L << (ACTIVE - 47)) | (1L << (ADMIN - 47)) | (1L << (AFTER - 47)) | (1L << (AGAINST - 47)) | (1L << (AGGREGATE - 47)) | (1L << (ALGORITHM - 47)) | (1L << (ALWAYS - 47)) | (1L << (ANY - 47)) | (1L << (ARRAY - 47)) | (1L << (ASCII - 47)) | (1L << (AT - 47)) | (1L << (ATTRIBUTE - 47)) | (1L << (AUTOEXTEND_SIZE - 47)) | (1L << (AUTO_INCREMENT - 47)) | (1L << (AVG - 47)) | (1L << (BIT_XOR - 47)) | (1L << (AVG_ROW_LENGTH - 47)) | (1L << (BACKUP - 47)) | (1L << (BEGIN - 47)) | (1L << (BINLOG - 47)) | (1L << (BIT - 47)) | (1L << (BLOCK - 47)))) != 0) || ((((_la - 111)) & ~0x3f) == 0 && ((1L << (_la - 111)) & ((1L << (BOOL - 111)) | (1L << (BOOLEAN - 111)) | (1L << (BTREE - 111)) | (1L << (BUCKETS - 111)) | (1L << (BYTE - 111)) | (1L << (CACHE - 111)) | (1L << (CASCADED - 111)) | (1L << (CATALOG_NAME - 111)) | (1L << (CHAIN - 111)) | (1L << (CHANGED - 111)) | (1L << (CHANNEL - 111)) | (1L << (CHARSET - 111)) | (1L << (CHECKSUM - 111)) | (1L << (CIPHER - 111)) | (1L << (CLASS_ORIGIN - 111)) | (1L << (CLIENT - 111)) | (1L << (CLONE - 111)) | (1L << (CLOSE - 111)) | (1L << (COALESCE - 111)) | (1L << (CODE - 111)) | (1L << (COLLATION - 111)) | (1L << (COLUMNS - 111)) | (1L << (COLUMN_FORMAT - 111)) | (1L << (COLUMN_NAME - 111)) | (1L << (COMMENT - 111)) | (1L << (COMMIT - 111)) | (1L << (COMMITTED - 111)) | (1L << (COMPACT - 111)) | (1L << (COMPLETION - 111)) | (1L << (COMPONENT - 111)) | (1L << (COMPRESSED - 111)) | (1L << (COMPRESSION - 111)) | (1L << (CONCURRENT - 111)) | (1L << (CONNECTION - 111)) | (1L << (CONSISTENT - 111)) | (1L << (CONSTRAINT_CATALOG - 111)) | (1L << (CONSTRAINT_NAME - 111)) | (1L << (CONSTRAINT_SCHEMA - 111)) | (1L << (CONTAINS - 111)) | (1L << (CONTEXT - 111)) | (1L << (CPU - 111)) | (1L << (CREATE - 111)) | (1L << (CURRENT - 111)))) != 0) || ((((_la - 179)) & ~0x3f) == 0 && ((1L << (_la - 179)) & ((1L << (CURSOR_NAME - 179)) | (1L << (DATA - 179)) | (1L << (DATAFILE - 179)) | (1L << (DATE - 179)) | (1L << (DATETIME - 179)) | (1L << (DAY - 179)) | (1L << (DAY_MINUTE - 179)) | (1L << (DEALLOCATE - 179)) | (1L << (DEFAULT_AUTH - 179)) | (1L << (DEFINER - 179)) | (1L << (DEFINITION - 179)) | (1L << (DELAY_KEY_WRITE - 179)) | (1L << (DESCRIPTION - 179)) | (1L << (DIAGNOSTICS - 179)) | (1L << (DIRECTORY - 179)) | (1L << (DISABLE - 179)) | (1L << (DISCARD - 179)) | (1L << (DISK - 179)) | (1L << (DO - 179)) | (1L << (DUMPFILE - 179)) | (1L << (DUPLICATE - 179)) | (1L << (DYNAMIC - 179)) | (1L << (ENABLE - 179)) | (1L << (ENCRYPTION - 179)) | (1L << (END - 179)) | (1L << (ENDS - 179)) | (1L << (ENFORCED - 179)) | (1L << (ENGINE - 179)) | (1L << (ENGINES - 179)) | (1L << (ENGINE_ATTRIBUTE - 179)) | (1L << (ENUM - 179)) | (1L << (ERROR - 179)) | (1L << (ERRORS - 179)) | (1L << (ESCAPE - 179)) | (1L << (EVENT - 179)) | (1L << (EVENTS - 179)) | (1L << (EVERY - 179)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (EXCHANGE - 244)) | (1L << (EXCLUDE - 244)) | (1L << (EXECUTE - 244)) | (1L << (EXPANSION - 244)) | (1L << (EXPIRE - 244)) | (1L << (EXPORT - 244)) | (1L << (EXTENDED - 244)) | (1L << (EXTENT_SIZE - 244)) | (1L << (FAILED_LOGIN_ATTEMPTS - 244)) | (1L << (FAST - 244)) | (1L << (FAULTS - 244)) | (1L << (FILE - 244)) | (1L << (FILE_BLOCK_SIZE - 244)) | (1L << (FILTER - 244)) | (1L << (FIRST - 244)) | (1L << (FIXED - 244)) | (1L << (FLUSH - 244)) | (1L << (FOLLOWING - 244)) | (1L << (FOLLOWS - 244)) | (1L << (FORMAT - 244)) | (1L << (FOUND - 244)) | (1L << (FULL - 244)) | (1L << (GENERAL - 244)) | (1L << (GEOMETRY - 244)) | (1L << (GEOMETRYCOLLECTION - 244)) | (1L << (GET_FORMAT - 244)) | (1L << (GET_MASTER_PUBLIC_KEY - 244)) | (1L << (GLOBAL - 244)) | (1L << (GRANTS - 244)) | (1L << (GROUP_REPLICATION - 244)) | (1L << (HANDLER - 244)) | (1L << (HASH - 244)) | (1L << (HELP - 244)) | (1L << (HISTOGRAM - 244)) | (1L << (HISTORY - 244)) | (1L << (HOST - 244)) | (1L << (HOSTS - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (HOUR - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INACTIVE - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTALL - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVISIBLE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (JSON - 308)) | (1L << (JSON_VALUE - 308)) | (1L << (KEY - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LAST_VALUE - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)))) != 0) || ((((_la - 373)) & ~0x3f) == 0 && ((1L << (_la - 373)) & ((1L << (LINESTRING - 373)) | (1L << (LIST - 373)) | (1L << (LOCAL - 373)) | (1L << (LOCKED - 373)) | (1L << (LOCKS - 373)) | (1L << (LOGFILE - 373)) | (1L << (LOGS - 373)) | (1L << (MASTER - 373)) | (1L << (MASTER_AUTO_POSITION - 373)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 373)) | (1L << (MASTER_CONNECT_RETRY - 373)) | (1L << (MASTER_DELAY - 373)) | (1L << (MASTER_HEARTBEAT_PERIOD - 373)) | (1L << (MASTER_HOST - 373)) | (1L << (MASTER_LOG_FILE - 373)) | (1L << (MASTER_LOG_POS - 373)) | (1L << (MASTER_PASSWORD - 373)) | (1L << (MASTER_PORT - 373)) | (1L << (MASTER_PUBLIC_KEY_PATH - 373)) | (1L << (MASTER_RETRY_COUNT - 373)) | (1L << (MASTER_SERVER_ID - 373)) | (1L << (MASTER_SSL - 373)) | (1L << (MASTER_SSL_CA - 373)) | (1L << (MASTER_SSL_CAPATH - 373)) | (1L << (MASTER_SSL_CERT - 373)) | (1L << (MASTER_SSL_CIPHER - 373)) | (1L << (MASTER_SSL_CRL - 373)) | (1L << (MASTER_SSL_CRLPATH - 373)) | (1L << (MASTER_SSL_KEY - 373)) | (1L << (MASTER_TLS_CIPHERSUITES - 373)) | (1L << (MASTER_TLS_VERSION - 373)) | (1L << (MASTER_USER - 373)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 373)) | (1L << (MAXVALUE - 373)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 373)) | (1L << (MAX_QUERIES_PER_HOUR - 373)) | (1L << (MAX_ROWS - 373)) | (1L << (MAX_SIZE - 373)) | (1L << (MAX_UPDATES_PER_HOUR - 373)) | (1L << (MAX_USER_CONNECTIONS - 373)) | (1L << (MEDIUM - 373)) | (1L << (MEMBER - 373)) | (1L << (MEMORY - 373)) | (1L << (MERGE - 373)) | (1L << (MESSAGE_TEXT - 373)) | (1L << (MICROSECOND - 373)))) != 0) || ((((_la - 437)) & ~0x3f) == 0 && ((1L << (_la - 437)) & ((1L << (MIGRATE - 437)) | (1L << (MINUTE - 437)) | (1L << (MIN_ROWS - 437)) | (1L << (MODE - 437)) | (1L << (MODIFY - 437)) | (1L << (MONTH - 437)) | (1L << (MULTILINESTRING - 437)) | (1L << (MULTIPOINT - 437)) | (1L << (MULTIPOLYGON - 437)) | (1L << (MUTEX - 437)) | (1L << (MYSQL_ERRNO - 437)) | (1L << (NAME - 437)) | (1L << (NAMES - 437)) | (1L << (NATIONAL - 437)) | (1L << (NCHAR - 437)) | (1L << (NDBCLUSTER - 437)) | (1L << (NESTED - 437)) | (1L << (NETWORK_NAMESPACE - 437)) | (1L << (NEVER - 437)) | (1L << (NEW - 437)) | (1L << (NEXT - 437)) | (1L << (NO - 437)) | (1L << (NODEGROUP - 437)) | (1L << (NONE - 437)) | (1L << (NOWAIT - 437)) | (1L << (NO_WAIT - 437)) | (1L << (NULLS - 437)) | (1L << (NUMBER - 437)) | (1L << (NVARCHAR - 437)) | (1L << (OFF - 437)) | (1L << (OFFSET - 437)) | (1L << (OJ - 437)) | (1L << (OLD - 437)) | (1L << (ONE - 437)) | (1L << (ONLY - 437)) | (1L << (OPEN - 437)) | (1L << (OPTIONAL - 437)) | (1L << (OPTIONS - 437)) | (1L << (ORDINALITY - 437)) | (1L << (ORGANIZATION - 437)) | (1L << (OTHERS - 437)))) != 0) || ((((_la - 505)) & ~0x3f) == 0 && ((1L << (_la - 505)) & ((1L << (OWNER - 505)) | (1L << (PACK_KEYS - 505)) | (1L << (PAGE - 505)) | (1L << (PARSER - 505)) | (1L << (PARTIAL - 505)) | (1L << (PARTITIONING - 505)) | (1L << (PARTITIONS - 505)) | (1L << (PASSWORD - 505)) | (1L << (PASSWORD_LOCK_TIME - 505)) | (1L << (PATH - 505)) | (1L << (PERSIST - 505)) | (1L << (PERSIST_ONLY - 505)) | (1L << (PHASE - 505)) | (1L << (PLUGIN - 505)) | (1L << (PLUGINS - 505)) | (1L << (PLUGIN_DIR - 505)) | (1L << (POINT - 505)) | (1L << (POLYGON - 505)) | (1L << (PORT - 505)) | (1L << (PRECEDES - 505)) | (1L << (PRECEDING - 505)) | (1L << (PREPARE - 505)) | (1L << (PRESERVE - 505)) | (1L << (PREV - 505)) | (1L << (PRIMARY - 505)) | (1L << (PRIVILEGES - 505)) | (1L << (PRIVILEGE_CHECKS_USER - 505)) | (1L << (PROCESS - 505)) | (1L << (PROCESSLIST - 505)) | (1L << (PROFILE - 505)) | (1L << (PROFILES - 505)) | (1L << (PROXY - 505)) | (1L << (QUARTER - 505)) | (1L << (QUERY - 505)) | (1L << (QUICK - 505)) | (1L << (RANDOM - 505)) | (1L << (READ_ONLY - 505)) | (1L << (REBUILD - 505)) | (1L << (RECOVER - 505)) | (1L << (REDO_BUFFER_SIZE - 505)) | (1L << (REDUNDANT - 505)) | (1L << (REFERENCE - 505)) | (1L << (RELAY - 505)) | (1L << (RELAYLOG - 505)) | (1L << (RELAY_LOG_FILE - 505)) | (1L << (RELAY_LOG_POS - 505)) | (1L << (RELAY_THREAD - 505)) | (1L << (RELOAD - 505)) | (1L << (REMOVE - 505)))) != 0) || ((((_la - 570)) & ~0x3f) == 0 && ((1L << (_la - 570)) & ((1L << (REORGANIZE - 570)) | (1L << (REPAIR - 570)) | (1L << (REPEATABLE - 570)) | (1L << (REPLICATE_DO_DB - 570)) | (1L << (REPLICATE_DO_TABLE - 570)) | (1L << (REPLICATE_IGNORE_DB - 570)) | (1L << (REPLICATE_IGNORE_TABLE - 570)) | (1L << (REPLICATE_REWRITE_DB - 570)) | (1L << (REPLICATE_WILD_DO_TABLE - 570)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 570)) | (1L << (REPLICATION - 570)) | (1L << (REQUIRE_ROW_FORMAT - 570)) | (1L << (RESET - 570)) | (1L << (RESOURCE - 570)) | (1L << (RESPECT - 570)) | (1L << (RESTART - 570)) | (1L << (RESTORE - 570)) | (1L << (RESUME - 570)) | (1L << (RETAIN - 570)) | (1L << (RETURNED_SQLSTATE - 570)) | (1L << (RETURNING - 570)) | (1L << (RETURNS - 570)) | (1L << (REUSE - 570)) | (1L << (REVERSE - 570)) | (1L << (ROLE - 570)) | (1L << (ROLLBACK - 570)) | (1L << (ROLLUP - 570)) | (1L << (ROTATE - 570)) | (1L << (ROUTINE - 570)) | (1L << (ROW_COUNT - 570)) | (1L << (ROW_FORMAT - 570)) | (1L << (RTREE - 570)) | (1L << (SAVEPOINT - 570)) | (1L << (SCHEDULE - 570)) | (1L << (SCHEMA_NAME - 570)) | (1L << (SECOND - 570)) | (1L << (SECONDARY - 570)) | (1L << (SECONDARY_ENGINE - 570)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 570)) | (1L << (SECONDARY_LOAD - 570)) | (1L << (SECONDARY_UNLOAD - 570)) | (1L << (SECURITY - 570)) | (1L << (SERIAL - 570)))) != 0) || ((((_la - 634)) & ~0x3f) == 0 && ((1L << (_la - 634)) & ((1L << (SERIALIZABLE - 634)) | (1L << (SERVER - 634)) | (1L << (SESSION - 634)) | (1L << (SHARE - 634)) | (1L << (SHUTDOWN - 634)) | (1L << (SIGNED - 634)) | (1L << (SIMPLE - 634)) | (1L << (SLAVE - 634)) | (1L << (SLOW - 634)) | (1L << (SNAPSHOT - 634)) | (1L << (SOCKET - 634)) | (1L << (SONAME - 634)) | (1L << (SOUNDS - 634)) | (1L << (SOURCE - 634)) | (1L << (SQL_AFTER_GTIDS - 634)) | (1L << (SQL_AFTER_MTS_GAPS - 634)) | (1L << (SQL_BEFORE_GTIDS - 634)) | (1L << (SQL_BUFFER_RESULT - 634)) | (1L << (SQL_NO_CACHE - 634)) | (1L << (SQL_THREAD - 634)) | (1L << (SRID - 634)) | (1L << (STACKED - 634)) | (1L << (START - 634)) | (1L << (STARTS - 634)) | (1L << (STATS_AUTO_RECALC - 634)) | (1L << (STATS_PERSISTENT - 634)) | (1L << (STATS_SAMPLE_PAGES - 634)) | (1L << (STATUS - 634)) | (1L << (STOP - 634)) | (1L << (STORAGE - 634)) | (1L << (STREAM - 634)) | (1L << (STRING - 634)) | (1L << (SUBCLASS_ORIGIN - 634)) | (1L << (SUBJECT - 634)) | (1L << (SUBPARTITION - 634)) | (1L << (SUBPARTITIONS - 634)) | (1L << (SUPER - 634)) | (1L << (SUSPEND - 634)) | (1L << (SWAPS - 634)) | (1L << (SWITCHES - 634)) | (1L << (SYSTEM - 634)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (UNDERSCORE_CHARSET - 787)))) != 0) || _la==IDENTIFIER_) {
954 					{
955 					setState(540);
956 					fields();
957 					}
958 				}
959 
960 				setState(543);
961 				match(RP_);
962 				}
963 			}
964 
965 			setState(546);
966 			_la = _input.LA(1);
967 			if ( !(_la==VALUE || _la==VALUES) ) {
968 			_errHandler.recoverInline(this);
969 			}
970 			else {
971 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
972 				_errHandler.reportMatch(this);
973 				consume();
974 			}
975 			setState(556);
976 			_errHandler.sync(this);
977 			switch (_input.LA(1)) {
978 			case LP_:
979 				{
980 				setState(547);
981 				assignmentValues();
982 				setState(552);
983 				_errHandler.sync(this);
984 				_la = _input.LA(1);
985 				while (_la==COMMA_) {
986 					{
987 					{
988 					setState(548);
989 					match(COMMA_);
990 					setState(549);
991 					assignmentValues();
992 					}
993 					}
994 					setState(554);
995 					_errHandler.sync(this);
996 					_la = _input.LA(1);
997 				}
998 				}
999 				break;
1000 			case ROW:
1001 				{
1002 				setState(555);
1003 				rowConstructorList();
1004 				}
1005 				break;
1006 			default:
1007 				throw new NoViableAltException(this);
1008 			}
1009 			setState(559);
1010 			_errHandler.sync(this);
1011 			switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) {
1012 			case 1:
1013 				{
1014 				setState(558);
1015 				valueReference();
1016 				}
1017 				break;
1018 			}
1019 			}
1020 		}
1021 		catch (RecognitionException re) {
1022 			_localctx.exception = re;
1023 			_errHandler.reportError(this, re);
1024 			_errHandler.recover(this, re);
1025 		}
1026 		finally {
1027 			exitRule();
1028 		}
1029 		return _localctx;
1030 	}
1031 
1032 	public static class FieldsContext extends ParserRuleContext {
1033 		public List<InsertIdentifierContext> insertIdentifier() {
1034 			return getRuleContexts(InsertIdentifierContext.class);
1035 		}
1036 		public InsertIdentifierContext insertIdentifier(int i) {
1037 			return getRuleContext(InsertIdentifierContext.class,i);
1038 		}
1039 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
1040 		public TerminalNode COMMA_(int i) {
1041 			return getToken(HiveStatementParser.COMMA_, i);
1042 		}
1043 		public FieldsContext(ParserRuleContext parent, int invokingState) {
1044 			super(parent, invokingState);
1045 		}
1046 		@Override public int getRuleIndex() { return RULE_fields; }
1047 		@Override
1048 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1049 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFields(this);
1050 			else return visitor.visitChildren(this);
1051 		}
1052 	}
1053 
1054 	public final FieldsContext fields() throws RecognitionException {
1055 		FieldsContext _localctx = new FieldsContext(_ctx, getState());
1056 		enterRule(_localctx, 8, RULE_fields);
1057 		int _la;
1058 		try {
1059 			enterOuterAlt(_localctx, 1);
1060 			{
1061 			setState(561);
1062 			insertIdentifier();
1063 			setState(566);
1064 			_errHandler.sync(this);
1065 			_la = _input.LA(1);
1066 			while (_la==COMMA_) {
1067 				{
1068 				{
1069 				setState(562);
1070 				match(COMMA_);
1071 				setState(563);
1072 				insertIdentifier();
1073 				}
1074 				}
1075 				setState(568);
1076 				_errHandler.sync(this);
1077 				_la = _input.LA(1);
1078 			}
1079 			}
1080 		}
1081 		catch (RecognitionException re) {
1082 			_localctx.exception = re;
1083 			_errHandler.reportError(this, re);
1084 			_errHandler.recover(this, re);
1085 		}
1086 		finally {
1087 			exitRule();
1088 		}
1089 		return _localctx;
1090 	}
1091 
1092 	public static class InsertIdentifierContext extends ParserRuleContext {
1093 		public ColumnRefContext columnRef() {
1094 			return getRuleContext(ColumnRefContext.class,0);
1095 		}
1096 		public TableWildContext tableWild() {
1097 			return getRuleContext(TableWildContext.class,0);
1098 		}
1099 		public InsertIdentifierContext(ParserRuleContext parent, int invokingState) {
1100 			super(parent, invokingState);
1101 		}
1102 		@Override public int getRuleIndex() { return RULE_insertIdentifier; }
1103 		@Override
1104 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1105 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitInsertIdentifier(this);
1106 			else return visitor.visitChildren(this);
1107 		}
1108 	}
1109 
1110 	public final InsertIdentifierContext insertIdentifier() throws RecognitionException {
1111 		InsertIdentifierContext _localctx = new InsertIdentifierContext(_ctx, getState());
1112 		enterRule(_localctx, 10, RULE_insertIdentifier);
1113 		try {
1114 			setState(571);
1115 			_errHandler.sync(this);
1116 			switch ( getInterpreter().adaptivePredict(_input,16,_ctx) ) {
1117 			case 1:
1118 				enterOuterAlt(_localctx, 1);
1119 				{
1120 				setState(569);
1121 				columnRef();
1122 				}
1123 				break;
1124 			case 2:
1125 				enterOuterAlt(_localctx, 2);
1126 				{
1127 				setState(570);
1128 				tableWild();
1129 				}
1130 				break;
1131 			}
1132 		}
1133 		catch (RecognitionException re) {
1134 			_localctx.exception = re;
1135 			_errHandler.reportError(this, re);
1136 			_errHandler.recover(this, re);
1137 		}
1138 		finally {
1139 			exitRule();
1140 		}
1141 		return _localctx;
1142 	}
1143 
1144 	public static class TableWildContext extends ParserRuleContext {
1145 		public List<IdentifierContext> identifier() {
1146 			return getRuleContexts(IdentifierContext.class);
1147 		}
1148 		public IdentifierContext identifier(int i) {
1149 			return getRuleContext(IdentifierContext.class,i);
1150 		}
1151 		public List<TerminalNode> DOT_() { return getTokens(HiveStatementParser.DOT_); }
1152 		public TerminalNode DOT_(int i) {
1153 			return getToken(HiveStatementParser.DOT_, i);
1154 		}
1155 		public TerminalNode ASTERISK_() { return getToken(HiveStatementParser.ASTERISK_, 0); }
1156 		public TableWildContext(ParserRuleContext parent, int invokingState) {
1157 			super(parent, invokingState);
1158 		}
1159 		@Override public int getRuleIndex() { return RULE_tableWild; }
1160 		@Override
1161 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1162 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableWild(this);
1163 			else return visitor.visitChildren(this);
1164 		}
1165 	}
1166 
1167 	public final TableWildContext tableWild() throws RecognitionException {
1168 		TableWildContext _localctx = new TableWildContext(_ctx, getState());
1169 		enterRule(_localctx, 12, RULE_tableWild);
1170 		int _la;
1171 		try {
1172 			enterOuterAlt(_localctx, 1);
1173 			{
1174 			setState(573);
1175 			identifier();
1176 			setState(574);
1177 			match(DOT_);
1178 			setState(578);
1179 			_errHandler.sync(this);
1180 			_la = _input.LA(1);
1181 			if (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (GROUP_CONCAT - 47)) | (1L << (CAST - 47)) | (1L << (POSITION - 47)) | (1L << (SUBSTRING - 47)) | (1L << (SUBSTR - 47)) | (1L << (EXTRACT - 47)) | (1L << (TRIM - 47)) | (1L << (LAST_DAY - 47)) | (1L << (TRADITIONAL - 47)) | (1L << (TREE - 47)) | (1L << (MYSQL_MAIN - 47)) | (1L << (MYSQL_ADMIN - 47)) | (1L << (INSTANT - 47)) | (1L << (INPLACE - 47)) | (1L << (COPY - 47)) | (1L << (UL_BINARY - 47)) | (1L << (AUTOCOMMIT - 47)) | (1L << (INNODB - 47)) | (1L << (REDO_LOG - 47)) | (1L << (ACCOUNT - 47)) | (1L << (ACTION - 47)) | (1L << (ACTIVE - 47)) | (1L << (ADMIN - 47)) | (1L << (AFTER - 47)) | (1L << (AGAINST - 47)) | (1L << (AGGREGATE - 47)) | (1L << (ALGORITHM - 47)) | (1L << (ALWAYS - 47)) | (1L << (ANY - 47)) | (1L << (ARRAY - 47)) | (1L << (ASCII - 47)) | (1L << (AT - 47)) | (1L << (ATTRIBUTE - 47)) | (1L << (AUTOEXTEND_SIZE - 47)) | (1L << (AUTO_INCREMENT - 47)) | (1L << (AVG - 47)) | (1L << (BIT_XOR - 47)) | (1L << (AVG_ROW_LENGTH - 47)) | (1L << (BACKUP - 47)) | (1L << (BEGIN - 47)) | (1L << (BINLOG - 47)) | (1L << (BIT - 47)) | (1L << (BLOCK - 47)))) != 0) || ((((_la - 111)) & ~0x3f) == 0 && ((1L << (_la - 111)) & ((1L << (BOOL - 111)) | (1L << (BOOLEAN - 111)) | (1L << (BTREE - 111)) | (1L << (BUCKETS - 111)) | (1L << (BYTE - 111)) | (1L << (CACHE - 111)) | (1L << (CASCADED - 111)) | (1L << (CATALOG_NAME - 111)) | (1L << (CHAIN - 111)) | (1L << (CHANGED - 111)) | (1L << (CHANNEL - 111)) | (1L << (CHARSET - 111)) | (1L << (CHECKSUM - 111)) | (1L << (CIPHER - 111)) | (1L << (CLASS_ORIGIN - 111)) | (1L << (CLIENT - 111)) | (1L << (CLONE - 111)) | (1L << (CLOSE - 111)) | (1L << (COALESCE - 111)) | (1L << (CODE - 111)) | (1L << (COLLATION - 111)) | (1L << (COLUMNS - 111)) | (1L << (COLUMN_FORMAT - 111)) | (1L << (COLUMN_NAME - 111)) | (1L << (COMMENT - 111)) | (1L << (COMMIT - 111)) | (1L << (COMMITTED - 111)) | (1L << (COMPACT - 111)) | (1L << (COMPLETION - 111)) | (1L << (COMPONENT - 111)) | (1L << (COMPRESSED - 111)) | (1L << (COMPRESSION - 111)) | (1L << (CONCURRENT - 111)) | (1L << (CONNECTION - 111)) | (1L << (CONSISTENT - 111)) | (1L << (CONSTRAINT_CATALOG - 111)) | (1L << (CONSTRAINT_NAME - 111)) | (1L << (CONSTRAINT_SCHEMA - 111)) | (1L << (CONTAINS - 111)) | (1L << (CONTEXT - 111)) | (1L << (CPU - 111)) | (1L << (CREATE - 111)) | (1L << (CURRENT - 111)))) != 0) || ((((_la - 179)) & ~0x3f) == 0 && ((1L << (_la - 179)) & ((1L << (CURSOR_NAME - 179)) | (1L << (DATA - 179)) | (1L << (DATAFILE - 179)) | (1L << (DATE - 179)) | (1L << (DATETIME - 179)) | (1L << (DAY - 179)) | (1L << (DAY_MINUTE - 179)) | (1L << (DEALLOCATE - 179)) | (1L << (DEFAULT_AUTH - 179)) | (1L << (DEFINER - 179)) | (1L << (DEFINITION - 179)) | (1L << (DELAY_KEY_WRITE - 179)) | (1L << (DESCRIPTION - 179)) | (1L << (DIAGNOSTICS - 179)) | (1L << (DIRECTORY - 179)) | (1L << (DISABLE - 179)) | (1L << (DISCARD - 179)) | (1L << (DISK - 179)) | (1L << (DO - 179)) | (1L << (DUMPFILE - 179)) | (1L << (DUPLICATE - 179)) | (1L << (DYNAMIC - 179)) | (1L << (ENABLE - 179)) | (1L << (ENCRYPTION - 179)) | (1L << (END - 179)) | (1L << (ENDS - 179)) | (1L << (ENFORCED - 179)) | (1L << (ENGINE - 179)) | (1L << (ENGINES - 179)) | (1L << (ENGINE_ATTRIBUTE - 179)) | (1L << (ENUM - 179)) | (1L << (ERROR - 179)) | (1L << (ERRORS - 179)) | (1L << (ESCAPE - 179)) | (1L << (EVENT - 179)) | (1L << (EVENTS - 179)) | (1L << (EVERY - 179)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (EXCHANGE - 244)) | (1L << (EXCLUDE - 244)) | (1L << (EXECUTE - 244)) | (1L << (EXPANSION - 244)) | (1L << (EXPIRE - 244)) | (1L << (EXPORT - 244)) | (1L << (EXTENDED - 244)) | (1L << (EXTENT_SIZE - 244)) | (1L << (FAILED_LOGIN_ATTEMPTS - 244)) | (1L << (FAST - 244)) | (1L << (FAULTS - 244)) | (1L << (FILE - 244)) | (1L << (FILE_BLOCK_SIZE - 244)) | (1L << (FILTER - 244)) | (1L << (FIRST - 244)) | (1L << (FIXED - 244)) | (1L << (FLUSH - 244)) | (1L << (FOLLOWING - 244)) | (1L << (FOLLOWS - 244)) | (1L << (FORMAT - 244)) | (1L << (FOUND - 244)) | (1L << (FULL - 244)) | (1L << (GENERAL - 244)) | (1L << (GEOMETRY - 244)) | (1L << (GEOMETRYCOLLECTION - 244)) | (1L << (GET_FORMAT - 244)) | (1L << (GET_MASTER_PUBLIC_KEY - 244)) | (1L << (GLOBAL - 244)) | (1L << (GRANTS - 244)) | (1L << (GROUP_REPLICATION - 244)) | (1L << (HANDLER - 244)) | (1L << (HASH - 244)) | (1L << (HELP - 244)) | (1L << (HISTOGRAM - 244)) | (1L << (HISTORY - 244)) | (1L << (HOST - 244)) | (1L << (HOSTS - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (HOUR - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INACTIVE - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTALL - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVISIBLE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (JSON - 308)) | (1L << (JSON_VALUE - 308)) | (1L << (KEY - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LAST_VALUE - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)))) != 0) || ((((_la - 373)) & ~0x3f) == 0 && ((1L << (_la - 373)) & ((1L << (LINESTRING - 373)) | (1L << (LIST - 373)) | (1L << (LOCAL - 373)) | (1L << (LOCKED - 373)) | (1L << (LOCKS - 373)) | (1L << (LOGFILE - 373)) | (1L << (LOGS - 373)) | (1L << (MASTER - 373)) | (1L << (MASTER_AUTO_POSITION - 373)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 373)) | (1L << (MASTER_CONNECT_RETRY - 373)) | (1L << (MASTER_DELAY - 373)) | (1L << (MASTER_HEARTBEAT_PERIOD - 373)) | (1L << (MASTER_HOST - 373)) | (1L << (MASTER_LOG_FILE - 373)) | (1L << (MASTER_LOG_POS - 373)) | (1L << (MASTER_PASSWORD - 373)) | (1L << (MASTER_PORT - 373)) | (1L << (MASTER_PUBLIC_KEY_PATH - 373)) | (1L << (MASTER_RETRY_COUNT - 373)) | (1L << (MASTER_SERVER_ID - 373)) | (1L << (MASTER_SSL - 373)) | (1L << (MASTER_SSL_CA - 373)) | (1L << (MASTER_SSL_CAPATH - 373)) | (1L << (MASTER_SSL_CERT - 373)) | (1L << (MASTER_SSL_CIPHER - 373)) | (1L << (MASTER_SSL_CRL - 373)) | (1L << (MASTER_SSL_CRLPATH - 373)) | (1L << (MASTER_SSL_KEY - 373)) | (1L << (MASTER_TLS_CIPHERSUITES - 373)) | (1L << (MASTER_TLS_VERSION - 373)) | (1L << (MASTER_USER - 373)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 373)) | (1L << (MAXVALUE - 373)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 373)) | (1L << (MAX_QUERIES_PER_HOUR - 373)) | (1L << (MAX_ROWS - 373)) | (1L << (MAX_SIZE - 373)) | (1L << (MAX_UPDATES_PER_HOUR - 373)) | (1L << (MAX_USER_CONNECTIONS - 373)) | (1L << (MEDIUM - 373)) | (1L << (MEMBER - 373)) | (1L << (MEMORY - 373)) | (1L << (MERGE - 373)) | (1L << (MESSAGE_TEXT - 373)) | (1L << (MICROSECOND - 373)))) != 0) || ((((_la - 437)) & ~0x3f) == 0 && ((1L << (_la - 437)) & ((1L << (MIGRATE - 437)) | (1L << (MINUTE - 437)) | (1L << (MIN_ROWS - 437)) | (1L << (MODE - 437)) | (1L << (MODIFY - 437)) | (1L << (MONTH - 437)) | (1L << (MULTILINESTRING - 437)) | (1L << (MULTIPOINT - 437)) | (1L << (MULTIPOLYGON - 437)) | (1L << (MUTEX - 437)) | (1L << (MYSQL_ERRNO - 437)) | (1L << (NAME - 437)) | (1L << (NAMES - 437)) | (1L << (NATIONAL - 437)) | (1L << (NCHAR - 437)) | (1L << (NDBCLUSTER - 437)) | (1L << (NESTED - 437)) | (1L << (NETWORK_NAMESPACE - 437)) | (1L << (NEVER - 437)) | (1L << (NEW - 437)) | (1L << (NEXT - 437)) | (1L << (NO - 437)) | (1L << (NODEGROUP - 437)) | (1L << (NONE - 437)) | (1L << (NOWAIT - 437)) | (1L << (NO_WAIT - 437)) | (1L << (NULLS - 437)) | (1L << (NUMBER - 437)) | (1L << (NVARCHAR - 437)) | (1L << (OFF - 437)) | (1L << (OFFSET - 437)) | (1L << (OJ - 437)) | (1L << (OLD - 437)) | (1L << (ONE - 437)) | (1L << (ONLY - 437)) | (1L << (OPEN - 437)) | (1L << (OPTIONAL - 437)) | (1L << (OPTIONS - 437)) | (1L << (ORDINALITY - 437)) | (1L << (ORGANIZATION - 437)) | (1L << (OTHERS - 437)))) != 0) || ((((_la - 505)) & ~0x3f) == 0 && ((1L << (_la - 505)) & ((1L << (OWNER - 505)) | (1L << (PACK_KEYS - 505)) | (1L << (PAGE - 505)) | (1L << (PARSER - 505)) | (1L << (PARTIAL - 505)) | (1L << (PARTITIONING - 505)) | (1L << (PARTITIONS - 505)) | (1L << (PASSWORD - 505)) | (1L << (PASSWORD_LOCK_TIME - 505)) | (1L << (PATH - 505)) | (1L << (PERSIST - 505)) | (1L << (PERSIST_ONLY - 505)) | (1L << (PHASE - 505)) | (1L << (PLUGIN - 505)) | (1L << (PLUGINS - 505)) | (1L << (PLUGIN_DIR - 505)) | (1L << (POINT - 505)) | (1L << (POLYGON - 505)) | (1L << (PORT - 505)) | (1L << (PRECEDES - 505)) | (1L << (PRECEDING - 505)) | (1L << (PREPARE - 505)) | (1L << (PRESERVE - 505)) | (1L << (PREV - 505)) | (1L << (PRIMARY - 505)) | (1L << (PRIVILEGES - 505)) | (1L << (PRIVILEGE_CHECKS_USER - 505)) | (1L << (PROCESS - 505)) | (1L << (PROCESSLIST - 505)) | (1L << (PROFILE - 505)) | (1L << (PROFILES - 505)) | (1L << (PROXY - 505)) | (1L << (QUARTER - 505)) | (1L << (QUERY - 505)) | (1L << (QUICK - 505)) | (1L << (RANDOM - 505)) | (1L << (READ_ONLY - 505)) | (1L << (REBUILD - 505)) | (1L << (RECOVER - 505)) | (1L << (REDO_BUFFER_SIZE - 505)) | (1L << (REDUNDANT - 505)) | (1L << (REFERENCE - 505)) | (1L << (RELAY - 505)) | (1L << (RELAYLOG - 505)) | (1L << (RELAY_LOG_FILE - 505)) | (1L << (RELAY_LOG_POS - 505)) | (1L << (RELAY_THREAD - 505)) | (1L << (RELOAD - 505)) | (1L << (REMOVE - 505)))) != 0) || ((((_la - 570)) & ~0x3f) == 0 && ((1L << (_la - 570)) & ((1L << (REORGANIZE - 570)) | (1L << (REPAIR - 570)) | (1L << (REPEATABLE - 570)) | (1L << (REPLICATE_DO_DB - 570)) | (1L << (REPLICATE_DO_TABLE - 570)) | (1L << (REPLICATE_IGNORE_DB - 570)) | (1L << (REPLICATE_IGNORE_TABLE - 570)) | (1L << (REPLICATE_REWRITE_DB - 570)) | (1L << (REPLICATE_WILD_DO_TABLE - 570)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 570)) | (1L << (REPLICATION - 570)) | (1L << (REQUIRE_ROW_FORMAT - 570)) | (1L << (RESET - 570)) | (1L << (RESOURCE - 570)) | (1L << (RESPECT - 570)) | (1L << (RESTART - 570)) | (1L << (RESTORE - 570)) | (1L << (RESUME - 570)) | (1L << (RETAIN - 570)) | (1L << (RETURNED_SQLSTATE - 570)) | (1L << (RETURNING - 570)) | (1L << (RETURNS - 570)) | (1L << (REUSE - 570)) | (1L << (REVERSE - 570)) | (1L << (ROLE - 570)) | (1L << (ROLLBACK - 570)) | (1L << (ROLLUP - 570)) | (1L << (ROTATE - 570)) | (1L << (ROUTINE - 570)) | (1L << (ROW_COUNT - 570)) | (1L << (ROW_FORMAT - 570)) | (1L << (RTREE - 570)) | (1L << (SAVEPOINT - 570)) | (1L << (SCHEDULE - 570)) | (1L << (SCHEMA_NAME - 570)) | (1L << (SECOND - 570)) | (1L << (SECONDARY - 570)) | (1L << (SECONDARY_ENGINE - 570)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 570)) | (1L << (SECONDARY_LOAD - 570)) | (1L << (SECONDARY_UNLOAD - 570)) | (1L << (SECURITY - 570)) | (1L << (SERIAL - 570)))) != 0) || ((((_la - 634)) & ~0x3f) == 0 && ((1L << (_la - 634)) & ((1L << (SERIALIZABLE - 634)) | (1L << (SERVER - 634)) | (1L << (SESSION - 634)) | (1L << (SHARE - 634)) | (1L << (SHUTDOWN - 634)) | (1L << (SIGNED - 634)) | (1L << (SIMPLE - 634)) | (1L << (SLAVE - 634)) | (1L << (SLOW - 634)) | (1L << (SNAPSHOT - 634)) | (1L << (SOCKET - 634)) | (1L << (SONAME - 634)) | (1L << (SOUNDS - 634)) | (1L << (SOURCE - 634)) | (1L << (SQL_AFTER_GTIDS - 634)) | (1L << (SQL_AFTER_MTS_GAPS - 634)) | (1L << (SQL_BEFORE_GTIDS - 634)) | (1L << (SQL_BUFFER_RESULT - 634)) | (1L << (SQL_NO_CACHE - 634)) | (1L << (SQL_THREAD - 634)) | (1L << (SRID - 634)) | (1L << (STACKED - 634)) | (1L << (START - 634)) | (1L << (STARTS - 634)) | (1L << (STATS_AUTO_RECALC - 634)) | (1L << (STATS_PERSISTENT - 634)) | (1L << (STATS_SAMPLE_PAGES - 634)) | (1L << (STATUS - 634)) | (1L << (STOP - 634)) | (1L << (STORAGE - 634)) | (1L << (STREAM - 634)) | (1L << (STRING - 634)) | (1L << (SUBCLASS_ORIGIN - 634)) | (1L << (SUBJECT - 634)) | (1L << (SUBPARTITION - 634)) | (1L << (SUBPARTITIONS - 634)) | (1L << (SUPER - 634)) | (1L << (SUSPEND - 634)) | (1L << (SWAPS - 634)) | (1L << (SWITCHES - 634)) | (1L << (SYSTEM - 634)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (UNDERSCORE_CHARSET - 787)))) != 0) || _la==IDENTIFIER_) {
1182 				{
1183 				setState(575);
1184 				identifier();
1185 				setState(576);
1186 				match(DOT_);
1187 				}
1188 			}
1189 
1190 			setState(580);
1191 			match(ASTERISK_);
1192 			}
1193 		}
1194 		catch (RecognitionException re) {
1195 			_localctx.exception = re;
1196 			_errHandler.reportError(this, re);
1197 			_errHandler.recover(this, re);
1198 		}
1199 		finally {
1200 			exitRule();
1201 		}
1202 		return _localctx;
1203 	}
1204 
1205 	public static class InsertSelectClauseContext extends ParserRuleContext {
1206 		public SelectContext select() {
1207 			return getRuleContext(SelectContext.class,0);
1208 		}
1209 		public ValueReferenceContext valueReference() {
1210 			return getRuleContext(ValueReferenceContext.class,0);
1211 		}
1212 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
1213 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
1214 		public FieldsContext fields() {
1215 			return getRuleContext(FieldsContext.class,0);
1216 		}
1217 		public InsertSelectClauseContext(ParserRuleContext parent, int invokingState) {
1218 			super(parent, invokingState);
1219 		}
1220 		@Override public int getRuleIndex() { return RULE_insertSelectClause; }
1221 		@Override
1222 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1223 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitInsertSelectClause(this);
1224 			else return visitor.visitChildren(this);
1225 		}
1226 	}
1227 
1228 	public final InsertSelectClauseContext insertSelectClause() throws RecognitionException {
1229 		InsertSelectClauseContext _localctx = new InsertSelectClauseContext(_ctx, getState());
1230 		enterRule(_localctx, 14, RULE_insertSelectClause);
1231 		int _la;
1232 		try {
1233 			enterOuterAlt(_localctx, 1);
1234 			{
1235 			setState(583);
1236 			_errHandler.sync(this);
1237 			_la = _input.LA(1);
1238 			if (_la==AS) {
1239 				{
1240 				setState(582);
1241 				valueReference();
1242 				}
1243 			}
1244 
1245 			setState(590);
1246 			_errHandler.sync(this);
1247 			switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
1248 			case 1:
1249 				{
1250 				setState(585);
1251 				match(LP_);
1252 				setState(587);
1253 				_errHandler.sync(this);
1254 				_la = _input.LA(1);
1255 				if (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (GROUP_CONCAT - 47)) | (1L << (CAST - 47)) | (1L << (POSITION - 47)) | (1L << (SUBSTRING - 47)) | (1L << (SUBSTR - 47)) | (1L << (EXTRACT - 47)) | (1L << (TRIM - 47)) | (1L << (LAST_DAY - 47)) | (1L << (TRADITIONAL - 47)) | (1L << (TREE - 47)) | (1L << (MYSQL_MAIN - 47)) | (1L << (MYSQL_ADMIN - 47)) | (1L << (INSTANT - 47)) | (1L << (INPLACE - 47)) | (1L << (COPY - 47)) | (1L << (UL_BINARY - 47)) | (1L << (AUTOCOMMIT - 47)) | (1L << (INNODB - 47)) | (1L << (REDO_LOG - 47)) | (1L << (ACCOUNT - 47)) | (1L << (ACTION - 47)) | (1L << (ACTIVE - 47)) | (1L << (ADMIN - 47)) | (1L << (AFTER - 47)) | (1L << (AGAINST - 47)) | (1L << (AGGREGATE - 47)) | (1L << (ALGORITHM - 47)) | (1L << (ALWAYS - 47)) | (1L << (ANY - 47)) | (1L << (ARRAY - 47)) | (1L << (ASCII - 47)) | (1L << (AT - 47)) | (1L << (ATTRIBUTE - 47)) | (1L << (AUTOEXTEND_SIZE - 47)) | (1L << (AUTO_INCREMENT - 47)) | (1L << (AVG - 47)) | (1L << (BIT_XOR - 47)) | (1L << (AVG_ROW_LENGTH - 47)) | (1L << (BACKUP - 47)) | (1L << (BEGIN - 47)) | (1L << (BINLOG - 47)) | (1L << (BIT - 47)) | (1L << (BLOCK - 47)))) != 0) || ((((_la - 111)) & ~0x3f) == 0 && ((1L << (_la - 111)) & ((1L << (BOOL - 111)) | (1L << (BOOLEAN - 111)) | (1L << (BTREE - 111)) | (1L << (BUCKETS - 111)) | (1L << (BYTE - 111)) | (1L << (CACHE - 111)) | (1L << (CASCADED - 111)) | (1L << (CATALOG_NAME - 111)) | (1L << (CHAIN - 111)) | (1L << (CHANGED - 111)) | (1L << (CHANNEL - 111)) | (1L << (CHARSET - 111)) | (1L << (CHECKSUM - 111)) | (1L << (CIPHER - 111)) | (1L << (CLASS_ORIGIN - 111)) | (1L << (CLIENT - 111)) | (1L << (CLONE - 111)) | (1L << (CLOSE - 111)) | (1L << (COALESCE - 111)) | (1L << (CODE - 111)) | (1L << (COLLATION - 111)) | (1L << (COLUMNS - 111)) | (1L << (COLUMN_FORMAT - 111)) | (1L << (COLUMN_NAME - 111)) | (1L << (COMMENT - 111)) | (1L << (COMMIT - 111)) | (1L << (COMMITTED - 111)) | (1L << (COMPACT - 111)) | (1L << (COMPLETION - 111)) | (1L << (COMPONENT - 111)) | (1L << (COMPRESSED - 111)) | (1L << (COMPRESSION - 111)) | (1L << (CONCURRENT - 111)) | (1L << (CONNECTION - 111)) | (1L << (CONSISTENT - 111)) | (1L << (CONSTRAINT_CATALOG - 111)) | (1L << (CONSTRAINT_NAME - 111)) | (1L << (CONSTRAINT_SCHEMA - 111)) | (1L << (CONTAINS - 111)) | (1L << (CONTEXT - 111)) | (1L << (CPU - 111)) | (1L << (CREATE - 111)) | (1L << (CURRENT - 111)))) != 0) || ((((_la - 179)) & ~0x3f) == 0 && ((1L << (_la - 179)) & ((1L << (CURSOR_NAME - 179)) | (1L << (DATA - 179)) | (1L << (DATAFILE - 179)) | (1L << (DATE - 179)) | (1L << (DATETIME - 179)) | (1L << (DAY - 179)) | (1L << (DAY_MINUTE - 179)) | (1L << (DEALLOCATE - 179)) | (1L << (DEFAULT_AUTH - 179)) | (1L << (DEFINER - 179)) | (1L << (DEFINITION - 179)) | (1L << (DELAY_KEY_WRITE - 179)) | (1L << (DESCRIPTION - 179)) | (1L << (DIAGNOSTICS - 179)) | (1L << (DIRECTORY - 179)) | (1L << (DISABLE - 179)) | (1L << (DISCARD - 179)) | (1L << (DISK - 179)) | (1L << (DO - 179)) | (1L << (DUMPFILE - 179)) | (1L << (DUPLICATE - 179)) | (1L << (DYNAMIC - 179)) | (1L << (ENABLE - 179)) | (1L << (ENCRYPTION - 179)) | (1L << (END - 179)) | (1L << (ENDS - 179)) | (1L << (ENFORCED - 179)) | (1L << (ENGINE - 179)) | (1L << (ENGINES - 179)) | (1L << (ENGINE_ATTRIBUTE - 179)) | (1L << (ENUM - 179)) | (1L << (ERROR - 179)) | (1L << (ERRORS - 179)) | (1L << (ESCAPE - 179)) | (1L << (EVENT - 179)) | (1L << (EVENTS - 179)) | (1L << (EVERY - 179)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (EXCHANGE - 244)) | (1L << (EXCLUDE - 244)) | (1L << (EXECUTE - 244)) | (1L << (EXPANSION - 244)) | (1L << (EXPIRE - 244)) | (1L << (EXPORT - 244)) | (1L << (EXTENDED - 244)) | (1L << (EXTENT_SIZE - 244)) | (1L << (FAILED_LOGIN_ATTEMPTS - 244)) | (1L << (FAST - 244)) | (1L << (FAULTS - 244)) | (1L << (FILE - 244)) | (1L << (FILE_BLOCK_SIZE - 244)) | (1L << (FILTER - 244)) | (1L << (FIRST - 244)) | (1L << (FIXED - 244)) | (1L << (FLUSH - 244)) | (1L << (FOLLOWING - 244)) | (1L << (FOLLOWS - 244)) | (1L << (FORMAT - 244)) | (1L << (FOUND - 244)) | (1L << (FULL - 244)) | (1L << (GENERAL - 244)) | (1L << (GEOMETRY - 244)) | (1L << (GEOMETRYCOLLECTION - 244)) | (1L << (GET_FORMAT - 244)) | (1L << (GET_MASTER_PUBLIC_KEY - 244)) | (1L << (GLOBAL - 244)) | (1L << (GRANTS - 244)) | (1L << (GROUP_REPLICATION - 244)) | (1L << (HANDLER - 244)) | (1L << (HASH - 244)) | (1L << (HELP - 244)) | (1L << (HISTOGRAM - 244)) | (1L << (HISTORY - 244)) | (1L << (HOST - 244)) | (1L << (HOSTS - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (HOUR - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INACTIVE - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTALL - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVISIBLE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (JSON - 308)) | (1L << (JSON_VALUE - 308)) | (1L << (KEY - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LAST_VALUE - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)))) != 0) || ((((_la - 373)) & ~0x3f) == 0 && ((1L << (_la - 373)) & ((1L << (LINESTRING - 373)) | (1L << (LIST - 373)) | (1L << (LOCAL - 373)) | (1L << (LOCKED - 373)) | (1L << (LOCKS - 373)) | (1L << (LOGFILE - 373)) | (1L << (LOGS - 373)) | (1L << (MASTER - 373)) | (1L << (MASTER_AUTO_POSITION - 373)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 373)) | (1L << (MASTER_CONNECT_RETRY - 373)) | (1L << (MASTER_DELAY - 373)) | (1L << (MASTER_HEARTBEAT_PERIOD - 373)) | (1L << (MASTER_HOST - 373)) | (1L << (MASTER_LOG_FILE - 373)) | (1L << (MASTER_LOG_POS - 373)) | (1L << (MASTER_PASSWORD - 373)) | (1L << (MASTER_PORT - 373)) | (1L << (MASTER_PUBLIC_KEY_PATH - 373)) | (1L << (MASTER_RETRY_COUNT - 373)) | (1L << (MASTER_SERVER_ID - 373)) | (1L << (MASTER_SSL - 373)) | (1L << (MASTER_SSL_CA - 373)) | (1L << (MASTER_SSL_CAPATH - 373)) | (1L << (MASTER_SSL_CERT - 373)) | (1L << (MASTER_SSL_CIPHER - 373)) | (1L << (MASTER_SSL_CRL - 373)) | (1L << (MASTER_SSL_CRLPATH - 373)) | (1L << (MASTER_SSL_KEY - 373)) | (1L << (MASTER_TLS_CIPHERSUITES - 373)) | (1L << (MASTER_TLS_VERSION - 373)) | (1L << (MASTER_USER - 373)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 373)) | (1L << (MAXVALUE - 373)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 373)) | (1L << (MAX_QUERIES_PER_HOUR - 373)) | (1L << (MAX_ROWS - 373)) | (1L << (MAX_SIZE - 373)) | (1L << (MAX_UPDATES_PER_HOUR - 373)) | (1L << (MAX_USER_CONNECTIONS - 373)) | (1L << (MEDIUM - 373)) | (1L << (MEMBER - 373)) | (1L << (MEMORY - 373)) | (1L << (MERGE - 373)) | (1L << (MESSAGE_TEXT - 373)) | (1L << (MICROSECOND - 373)))) != 0) || ((((_la - 437)) & ~0x3f) == 0 && ((1L << (_la - 437)) & ((1L << (MIGRATE - 437)) | (1L << (MINUTE - 437)) | (1L << (MIN_ROWS - 437)) | (1L << (MODE - 437)) | (1L << (MODIFY - 437)) | (1L << (MONTH - 437)) | (1L << (MULTILINESTRING - 437)) | (1L << (MULTIPOINT - 437)) | (1L << (MULTIPOLYGON - 437)) | (1L << (MUTEX - 437)) | (1L << (MYSQL_ERRNO - 437)) | (1L << (NAME - 437)) | (1L << (NAMES - 437)) | (1L << (NATIONAL - 437)) | (1L << (NCHAR - 437)) | (1L << (NDBCLUSTER - 437)) | (1L << (NESTED - 437)) | (1L << (NETWORK_NAMESPACE - 437)) | (1L << (NEVER - 437)) | (1L << (NEW - 437)) | (1L << (NEXT - 437)) | (1L << (NO - 437)) | (1L << (NODEGROUP - 437)) | (1L << (NONE - 437)) | (1L << (NOWAIT - 437)) | (1L << (NO_WAIT - 437)) | (1L << (NULLS - 437)) | (1L << (NUMBER - 437)) | (1L << (NVARCHAR - 437)) | (1L << (OFF - 437)) | (1L << (OFFSET - 437)) | (1L << (OJ - 437)) | (1L << (OLD - 437)) | (1L << (ONE - 437)) | (1L << (ONLY - 437)) | (1L << (OPEN - 437)) | (1L << (OPTIONAL - 437)) | (1L << (OPTIONS - 437)) | (1L << (ORDINALITY - 437)) | (1L << (ORGANIZATION - 437)) | (1L << (OTHERS - 437)))) != 0) || ((((_la - 505)) & ~0x3f) == 0 && ((1L << (_la - 505)) & ((1L << (OWNER - 505)) | (1L << (PACK_KEYS - 505)) | (1L << (PAGE - 505)) | (1L << (PARSER - 505)) | (1L << (PARTIAL - 505)) | (1L << (PARTITIONING - 505)) | (1L << (PARTITIONS - 505)) | (1L << (PASSWORD - 505)) | (1L << (PASSWORD_LOCK_TIME - 505)) | (1L << (PATH - 505)) | (1L << (PERSIST - 505)) | (1L << (PERSIST_ONLY - 505)) | (1L << (PHASE - 505)) | (1L << (PLUGIN - 505)) | (1L << (PLUGINS - 505)) | (1L << (PLUGIN_DIR - 505)) | (1L << (POINT - 505)) | (1L << (POLYGON - 505)) | (1L << (PORT - 505)) | (1L << (PRECEDES - 505)) | (1L << (PRECEDING - 505)) | (1L << (PREPARE - 505)) | (1L << (PRESERVE - 505)) | (1L << (PREV - 505)) | (1L << (PRIMARY - 505)) | (1L << (PRIVILEGES - 505)) | (1L << (PRIVILEGE_CHECKS_USER - 505)) | (1L << (PROCESS - 505)) | (1L << (PROCESSLIST - 505)) | (1L << (PROFILE - 505)) | (1L << (PROFILES - 505)) | (1L << (PROXY - 505)) | (1L << (QUARTER - 505)) | (1L << (QUERY - 505)) | (1L << (QUICK - 505)) | (1L << (RANDOM - 505)) | (1L << (READ_ONLY - 505)) | (1L << (REBUILD - 505)) | (1L << (RECOVER - 505)) | (1L << (REDO_BUFFER_SIZE - 505)) | (1L << (REDUNDANT - 505)) | (1L << (REFERENCE - 505)) | (1L << (RELAY - 505)) | (1L << (RELAYLOG - 505)) | (1L << (RELAY_LOG_FILE - 505)) | (1L << (RELAY_LOG_POS - 505)) | (1L << (RELAY_THREAD - 505)) | (1L << (RELOAD - 505)) | (1L << (REMOVE - 505)))) != 0) || ((((_la - 570)) & ~0x3f) == 0 && ((1L << (_la - 570)) & ((1L << (REORGANIZE - 570)) | (1L << (REPAIR - 570)) | (1L << (REPEATABLE - 570)) | (1L << (REPLICATE_DO_DB - 570)) | (1L << (REPLICATE_DO_TABLE - 570)) | (1L << (REPLICATE_IGNORE_DB - 570)) | (1L << (REPLICATE_IGNORE_TABLE - 570)) | (1L << (REPLICATE_REWRITE_DB - 570)) | (1L << (REPLICATE_WILD_DO_TABLE - 570)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 570)) | (1L << (REPLICATION - 570)) | (1L << (REQUIRE_ROW_FORMAT - 570)) | (1L << (RESET - 570)) | (1L << (RESOURCE - 570)) | (1L << (RESPECT - 570)) | (1L << (RESTART - 570)) | (1L << (RESTORE - 570)) | (1L << (RESUME - 570)) | (1L << (RETAIN - 570)) | (1L << (RETURNED_SQLSTATE - 570)) | (1L << (RETURNING - 570)) | (1L << (RETURNS - 570)) | (1L << (REUSE - 570)) | (1L << (REVERSE - 570)) | (1L << (ROLE - 570)) | (1L << (ROLLBACK - 570)) | (1L << (ROLLUP - 570)) | (1L << (ROTATE - 570)) | (1L << (ROUTINE - 570)) | (1L << (ROW_COUNT - 570)) | (1L << (ROW_FORMAT - 570)) | (1L << (RTREE - 570)) | (1L << (SAVEPOINT - 570)) | (1L << (SCHEDULE - 570)) | (1L << (SCHEMA_NAME - 570)) | (1L << (SECOND - 570)) | (1L << (SECONDARY - 570)) | (1L << (SECONDARY_ENGINE - 570)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 570)) | (1L << (SECONDARY_LOAD - 570)) | (1L << (SECONDARY_UNLOAD - 570)) | (1L << (SECURITY - 570)) | (1L << (SERIAL - 570)))) != 0) || ((((_la - 634)) & ~0x3f) == 0 && ((1L << (_la - 634)) & ((1L << (SERIALIZABLE - 634)) | (1L << (SERVER - 634)) | (1L << (SESSION - 634)) | (1L << (SHARE - 634)) | (1L << (SHUTDOWN - 634)) | (1L << (SIGNED - 634)) | (1L << (SIMPLE - 634)) | (1L << (SLAVE - 634)) | (1L << (SLOW - 634)) | (1L << (SNAPSHOT - 634)) | (1L << (SOCKET - 634)) | (1L << (SONAME - 634)) | (1L << (SOUNDS - 634)) | (1L << (SOURCE - 634)) | (1L << (SQL_AFTER_GTIDS - 634)) | (1L << (SQL_AFTER_MTS_GAPS - 634)) | (1L << (SQL_BEFORE_GTIDS - 634)) | (1L << (SQL_BUFFER_RESULT - 634)) | (1L << (SQL_NO_CACHE - 634)) | (1L << (SQL_THREAD - 634)) | (1L << (SRID - 634)) | (1L << (STACKED - 634)) | (1L << (START - 634)) | (1L << (STARTS - 634)) | (1L << (STATS_AUTO_RECALC - 634)) | (1L << (STATS_PERSISTENT - 634)) | (1L << (STATS_SAMPLE_PAGES - 634)) | (1L << (STATUS - 634)) | (1L << (STOP - 634)) | (1L << (STORAGE - 634)) | (1L << (STREAM - 634)) | (1L << (STRING - 634)) | (1L << (SUBCLASS_ORIGIN - 634)) | (1L << (SUBJECT - 634)) | (1L << (SUBPARTITION - 634)) | (1L << (SUBPARTITIONS - 634)) | (1L << (SUPER - 634)) | (1L << (SUSPEND - 634)) | (1L << (SWAPS - 634)) | (1L << (SWITCHES - 634)) | (1L << (SYSTEM - 634)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (UNDERSCORE_CHARSET - 787)))) != 0) || _la==IDENTIFIER_) {
1256 					{
1257 					setState(586);
1258 					fields();
1259 					}
1260 				}
1261 
1262 				setState(589);
1263 				match(RP_);
1264 				}
1265 				break;
1266 			}
1267 			setState(592);
1268 			select();
1269 			}
1270 		}
1271 		catch (RecognitionException re) {
1272 			_localctx.exception = re;
1273 			_errHandler.reportError(this, re);
1274 			_errHandler.recover(this, re);
1275 		}
1276 		finally {
1277 			exitRule();
1278 		}
1279 		return _localctx;
1280 	}
1281 
1282 	public static class OnDuplicateKeyClauseContext extends ParserRuleContext {
1283 		public TerminalNode ON() { return getToken(HiveStatementParser.ON, 0); }
1284 		public TerminalNode DUPLICATE() { return getToken(HiveStatementParser.DUPLICATE, 0); }
1285 		public TerminalNode KEY() { return getToken(HiveStatementParser.KEY, 0); }
1286 		public TerminalNode UPDATE() { return getToken(HiveStatementParser.UPDATE, 0); }
1287 		public List<AssignmentContext> assignment() {
1288 			return getRuleContexts(AssignmentContext.class);
1289 		}
1290 		public AssignmentContext assignment(int i) {
1291 			return getRuleContext(AssignmentContext.class,i);
1292 		}
1293 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
1294 		public IdentifierContext identifier() {
1295 			return getRuleContext(IdentifierContext.class,0);
1296 		}
1297 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
1298 		public TerminalNode COMMA_(int i) {
1299 			return getToken(HiveStatementParser.COMMA_, i);
1300 		}
1301 		public OnDuplicateKeyClauseContext(ParserRuleContext parent, int invokingState) {
1302 			super(parent, invokingState);
1303 		}
1304 		@Override public int getRuleIndex() { return RULE_onDuplicateKeyClause; }
1305 		@Override
1306 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1307 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOnDuplicateKeyClause(this);
1308 			else return visitor.visitChildren(this);
1309 		}
1310 	}
1311 
1312 	public final OnDuplicateKeyClauseContext onDuplicateKeyClause() throws RecognitionException {
1313 		OnDuplicateKeyClauseContext _localctx = new OnDuplicateKeyClauseContext(_ctx, getState());
1314 		enterRule(_localctx, 16, RULE_onDuplicateKeyClause);
1315 		int _la;
1316 		try {
1317 			enterOuterAlt(_localctx, 1);
1318 			{
1319 			setState(596);
1320 			_errHandler.sync(this);
1321 			_la = _input.LA(1);
1322 			if (_la==AS) {
1323 				{
1324 				setState(594);
1325 				match(AS);
1326 				setState(595);
1327 				identifier();
1328 				}
1329 			}
1330 
1331 			setState(598);
1332 			match(ON);
1333 			setState(599);
1334 			match(DUPLICATE);
1335 			setState(600);
1336 			match(KEY);
1337 			setState(601);
1338 			match(UPDATE);
1339 			setState(602);
1340 			assignment();
1341 			setState(607);
1342 			_errHandler.sync(this);
1343 			_la = _input.LA(1);
1344 			while (_la==COMMA_) {
1345 				{
1346 				{
1347 				setState(603);
1348 				match(COMMA_);
1349 				setState(604);
1350 				assignment();
1351 				}
1352 				}
1353 				setState(609);
1354 				_errHandler.sync(this);
1355 				_la = _input.LA(1);
1356 			}
1357 			}
1358 		}
1359 		catch (RecognitionException re) {
1360 			_localctx.exception = re;
1361 			_errHandler.reportError(this, re);
1362 			_errHandler.recover(this, re);
1363 		}
1364 		finally {
1365 			exitRule();
1366 		}
1367 		return _localctx;
1368 	}
1369 
1370 	public static class ValueReferenceContext extends ParserRuleContext {
1371 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
1372 		public AliasContext alias() {
1373 			return getRuleContext(AliasContext.class,0);
1374 		}
1375 		public DerivedColumnsContext derivedColumns() {
1376 			return getRuleContext(DerivedColumnsContext.class,0);
1377 		}
1378 		public ValueReferenceContext(ParserRuleContext parent, int invokingState) {
1379 			super(parent, invokingState);
1380 		}
1381 		@Override public int getRuleIndex() { return RULE_valueReference; }
1382 		@Override
1383 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1384 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitValueReference(this);
1385 			else return visitor.visitChildren(this);
1386 		}
1387 	}
1388 
1389 	public final ValueReferenceContext valueReference() throws RecognitionException {
1390 		ValueReferenceContext _localctx = new ValueReferenceContext(_ctx, getState());
1391 		enterRule(_localctx, 18, RULE_valueReference);
1392 		try {
1393 			enterOuterAlt(_localctx, 1);
1394 			{
1395 			setState(610);
1396 			match(AS);
1397 			setState(611);
1398 			alias();
1399 			setState(613);
1400 			_errHandler.sync(this);
1401 			switch ( getInterpreter().adaptivePredict(_input,23,_ctx) ) {
1402 			case 1:
1403 				{
1404 				setState(612);
1405 				derivedColumns();
1406 				}
1407 				break;
1408 			}
1409 			}
1410 		}
1411 		catch (RecognitionException re) {
1412 			_localctx.exception = re;
1413 			_errHandler.reportError(this, re);
1414 			_errHandler.recover(this, re);
1415 		}
1416 		finally {
1417 			exitRule();
1418 		}
1419 		return _localctx;
1420 	}
1421 
1422 	public static class DerivedColumnsContext extends ParserRuleContext {
1423 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
1424 		public List<AliasContext> alias() {
1425 			return getRuleContexts(AliasContext.class);
1426 		}
1427 		public AliasContext alias(int i) {
1428 			return getRuleContext(AliasContext.class,i);
1429 		}
1430 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
1431 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
1432 		public TerminalNode COMMA_(int i) {
1433 			return getToken(HiveStatementParser.COMMA_, i);
1434 		}
1435 		public DerivedColumnsContext(ParserRuleContext parent, int invokingState) {
1436 			super(parent, invokingState);
1437 		}
1438 		@Override public int getRuleIndex() { return RULE_derivedColumns; }
1439 		@Override
1440 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1441 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDerivedColumns(this);
1442 			else return visitor.visitChildren(this);
1443 		}
1444 	}
1445 
1446 	public final DerivedColumnsContext derivedColumns() throws RecognitionException {
1447 		DerivedColumnsContext _localctx = new DerivedColumnsContext(_ctx, getState());
1448 		enterRule(_localctx, 20, RULE_derivedColumns);
1449 		int _la;
1450 		try {
1451 			enterOuterAlt(_localctx, 1);
1452 			{
1453 			setState(615);
1454 			match(LP_);
1455 			setState(616);
1456 			alias();
1457 			setState(621);
1458 			_errHandler.sync(this);
1459 			_la = _input.LA(1);
1460 			while (_la==COMMA_) {
1461 				{
1462 				{
1463 				setState(617);
1464 				match(COMMA_);
1465 				setState(618);
1466 				alias();
1467 				}
1468 				}
1469 				setState(623);
1470 				_errHandler.sync(this);
1471 				_la = _input.LA(1);
1472 			}
1473 			setState(624);
1474 			match(RP_);
1475 			}
1476 		}
1477 		catch (RecognitionException re) {
1478 			_localctx.exception = re;
1479 			_errHandler.reportError(this, re);
1480 			_errHandler.recover(this, re);
1481 		}
1482 		finally {
1483 			exitRule();
1484 		}
1485 		return _localctx;
1486 	}
1487 
1488 	public static class UpdateContext extends ParserRuleContext {
1489 		public TerminalNode UPDATE() { return getToken(HiveStatementParser.UPDATE, 0); }
1490 		public UpdateSpecification_Context updateSpecification_() {
1491 			return getRuleContext(UpdateSpecification_Context.class,0);
1492 		}
1493 		public TableReferencesContext tableReferences() {
1494 			return getRuleContext(TableReferencesContext.class,0);
1495 		}
1496 		public SetAssignmentsClauseContext setAssignmentsClause() {
1497 			return getRuleContext(SetAssignmentsClauseContext.class,0);
1498 		}
1499 		public WithClauseContext withClause() {
1500 			return getRuleContext(WithClauseContext.class,0);
1501 		}
1502 		public WhereClauseContext whereClause() {
1503 			return getRuleContext(WhereClauseContext.class,0);
1504 		}
1505 		public OrderByClauseContext orderByClause() {
1506 			return getRuleContext(OrderByClauseContext.class,0);
1507 		}
1508 		public LimitClauseContext limitClause() {
1509 			return getRuleContext(LimitClauseContext.class,0);
1510 		}
1511 		public UpdateContext(ParserRuleContext parent, int invokingState) {
1512 			super(parent, invokingState);
1513 		}
1514 		@Override public int getRuleIndex() { return RULE_update; }
1515 		@Override
1516 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1517 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUpdate(this);
1518 			else return visitor.visitChildren(this);
1519 		}
1520 	}
1521 
1522 	public final UpdateContext update() throws RecognitionException {
1523 		UpdateContext _localctx = new UpdateContext(_ctx, getState());
1524 		enterRule(_localctx, 22, RULE_update);
1525 		int _la;
1526 		try {
1527 			enterOuterAlt(_localctx, 1);
1528 			{
1529 			setState(627);
1530 			_errHandler.sync(this);
1531 			_la = _input.LA(1);
1532 			if (_la==WITH) {
1533 				{
1534 				setState(626);
1535 				withClause();
1536 				}
1537 			}
1538 
1539 			setState(629);
1540 			match(UPDATE);
1541 			setState(630);
1542 			updateSpecification_();
1543 			setState(631);
1544 			tableReferences();
1545 			setState(632);
1546 			setAssignmentsClause();
1547 			setState(634);
1548 			_errHandler.sync(this);
1549 			_la = _input.LA(1);
1550 			if (_la==WHERE) {
1551 				{
1552 				setState(633);
1553 				whereClause();
1554 				}
1555 			}
1556 
1557 			setState(637);
1558 			_errHandler.sync(this);
1559 			_la = _input.LA(1);
1560 			if (_la==ORDER) {
1561 				{
1562 				setState(636);
1563 				orderByClause();
1564 				}
1565 			}
1566 
1567 			setState(640);
1568 			_errHandler.sync(this);
1569 			_la = _input.LA(1);
1570 			if (_la==LIMIT) {
1571 				{
1572 				setState(639);
1573 				limitClause();
1574 				}
1575 			}
1576 
1577 			}
1578 		}
1579 		catch (RecognitionException re) {
1580 			_localctx.exception = re;
1581 			_errHandler.reportError(this, re);
1582 			_errHandler.recover(this, re);
1583 		}
1584 		finally {
1585 			exitRule();
1586 		}
1587 		return _localctx;
1588 	}
1589 
1590 	public static class UpdateSpecification_Context extends ParserRuleContext {
1591 		public TerminalNode LOW_PRIORITY() { return getToken(HiveStatementParser.LOW_PRIORITY, 0); }
1592 		public TerminalNode IGNORE() { return getToken(HiveStatementParser.IGNORE, 0); }
1593 		public UpdateSpecification_Context(ParserRuleContext parent, int invokingState) {
1594 			super(parent, invokingState);
1595 		}
1596 		@Override public int getRuleIndex() { return RULE_updateSpecification_; }
1597 		@Override
1598 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1599 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUpdateSpecification_(this);
1600 			else return visitor.visitChildren(this);
1601 		}
1602 	}
1603 
1604 	public final UpdateSpecification_Context updateSpecification_() throws RecognitionException {
1605 		UpdateSpecification_Context _localctx = new UpdateSpecification_Context(_ctx, getState());
1606 		enterRule(_localctx, 24, RULE_updateSpecification_);
1607 		int _la;
1608 		try {
1609 			enterOuterAlt(_localctx, 1);
1610 			{
1611 			setState(643);
1612 			_errHandler.sync(this);
1613 			_la = _input.LA(1);
1614 			if (_la==LOW_PRIORITY) {
1615 				{
1616 				setState(642);
1617 				match(LOW_PRIORITY);
1618 				}
1619 			}
1620 
1621 			setState(646);
1622 			_errHandler.sync(this);
1623 			_la = _input.LA(1);
1624 			if (_la==IGNORE) {
1625 				{
1626 				setState(645);
1627 				match(IGNORE);
1628 				}
1629 			}
1630 
1631 			}
1632 		}
1633 		catch (RecognitionException re) {
1634 			_localctx.exception = re;
1635 			_errHandler.reportError(this, re);
1636 			_errHandler.recover(this, re);
1637 		}
1638 		finally {
1639 			exitRule();
1640 		}
1641 		return _localctx;
1642 	}
1643 
1644 	public static class AssignmentContext extends ParserRuleContext {
1645 		public ColumnRefContext columnRef() {
1646 			return getRuleContext(ColumnRefContext.class,0);
1647 		}
1648 		public TerminalNode EQ_() { return getToken(HiveStatementParser.EQ_, 0); }
1649 		public AssignmentValueContext assignmentValue() {
1650 			return getRuleContext(AssignmentValueContext.class,0);
1651 		}
1652 		public AssignmentContext(ParserRuleContext parent, int invokingState) {
1653 			super(parent, invokingState);
1654 		}
1655 		@Override public int getRuleIndex() { return RULE_assignment; }
1656 		@Override
1657 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1658 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAssignment(this);
1659 			else return visitor.visitChildren(this);
1660 		}
1661 	}
1662 
1663 	public final AssignmentContext assignment() throws RecognitionException {
1664 		AssignmentContext _localctx = new AssignmentContext(_ctx, getState());
1665 		enterRule(_localctx, 26, RULE_assignment);
1666 		try {
1667 			enterOuterAlt(_localctx, 1);
1668 			{
1669 			setState(648);
1670 			columnRef();
1671 			setState(649);
1672 			match(EQ_);
1673 			setState(650);
1674 			assignmentValue();
1675 			}
1676 		}
1677 		catch (RecognitionException re) {
1678 			_localctx.exception = re;
1679 			_errHandler.reportError(this, re);
1680 			_errHandler.recover(this, re);
1681 		}
1682 		finally {
1683 			exitRule();
1684 		}
1685 		return _localctx;
1686 	}
1687 
1688 	public static class SetAssignmentsClauseContext extends ParserRuleContext {
1689 		public TerminalNode SET() { return getToken(HiveStatementParser.SET, 0); }
1690 		public List<AssignmentContext> assignment() {
1691 			return getRuleContexts(AssignmentContext.class);
1692 		}
1693 		public AssignmentContext assignment(int i) {
1694 			return getRuleContext(AssignmentContext.class,i);
1695 		}
1696 		public ValueReferenceContext valueReference() {
1697 			return getRuleContext(ValueReferenceContext.class,0);
1698 		}
1699 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
1700 		public TerminalNode COMMA_(int i) {
1701 			return getToken(HiveStatementParser.COMMA_, i);
1702 		}
1703 		public SetAssignmentsClauseContext(ParserRuleContext parent, int invokingState) {
1704 			super(parent, invokingState);
1705 		}
1706 		@Override public int getRuleIndex() { return RULE_setAssignmentsClause; }
1707 		@Override
1708 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1709 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSetAssignmentsClause(this);
1710 			else return visitor.visitChildren(this);
1711 		}
1712 	}
1713 
1714 	public final SetAssignmentsClauseContext setAssignmentsClause() throws RecognitionException {
1715 		SetAssignmentsClauseContext _localctx = new SetAssignmentsClauseContext(_ctx, getState());
1716 		enterRule(_localctx, 28, RULE_setAssignmentsClause);
1717 		int _la;
1718 		try {
1719 			enterOuterAlt(_localctx, 1);
1720 			{
1721 			setState(653);
1722 			_errHandler.sync(this);
1723 			_la = _input.LA(1);
1724 			if (_la==AS) {
1725 				{
1726 				setState(652);
1727 				valueReference();
1728 				}
1729 			}
1730 
1731 			setState(655);
1732 			match(SET);
1733 			setState(656);
1734 			assignment();
1735 			setState(661);
1736 			_errHandler.sync(this);
1737 			_la = _input.LA(1);
1738 			while (_la==COMMA_) {
1739 				{
1740 				{
1741 				setState(657);
1742 				match(COMMA_);
1743 				setState(658);
1744 				assignment();
1745 				}
1746 				}
1747 				setState(663);
1748 				_errHandler.sync(this);
1749 				_la = _input.LA(1);
1750 			}
1751 			}
1752 		}
1753 		catch (RecognitionException re) {
1754 			_localctx.exception = re;
1755 			_errHandler.reportError(this, re);
1756 			_errHandler.recover(this, re);
1757 		}
1758 		finally {
1759 			exitRule();
1760 		}
1761 		return _localctx;
1762 	}
1763 
1764 	public static class AssignmentValuesContext extends ParserRuleContext {
1765 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
1766 		public List<AssignmentValueContext> assignmentValue() {
1767 			return getRuleContexts(AssignmentValueContext.class);
1768 		}
1769 		public AssignmentValueContext assignmentValue(int i) {
1770 			return getRuleContext(AssignmentValueContext.class,i);
1771 		}
1772 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
1773 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
1774 		public TerminalNode COMMA_(int i) {
1775 			return getToken(HiveStatementParser.COMMA_, i);
1776 		}
1777 		public AssignmentValuesContext(ParserRuleContext parent, int invokingState) {
1778 			super(parent, invokingState);
1779 		}
1780 		@Override public int getRuleIndex() { return RULE_assignmentValues; }
1781 		@Override
1782 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1783 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAssignmentValues(this);
1784 			else return visitor.visitChildren(this);
1785 		}
1786 	}
1787 
1788 	public final AssignmentValuesContext assignmentValues() throws RecognitionException {
1789 		AssignmentValuesContext _localctx = new AssignmentValuesContext(_ctx, getState());
1790 		enterRule(_localctx, 30, RULE_assignmentValues);
1791 		int _la;
1792 		try {
1793 			setState(677);
1794 			_errHandler.sync(this);
1795 			switch ( getInterpreter().adaptivePredict(_input,34,_ctx) ) {
1796 			case 1:
1797 				enterOuterAlt(_localctx, 1);
1798 				{
1799 				setState(664);
1800 				match(LP_);
1801 				setState(665);
1802 				assignmentValue();
1803 				setState(670);
1804 				_errHandler.sync(this);
1805 				_la = _input.LA(1);
1806 				while (_la==COMMA_) {
1807 					{
1808 					{
1809 					setState(666);
1810 					match(COMMA_);
1811 					setState(667);
1812 					assignmentValue();
1813 					}
1814 					}
1815 					setState(672);
1816 					_errHandler.sync(this);
1817 					_la = _input.LA(1);
1818 				}
1819 				setState(673);
1820 				match(RP_);
1821 				}
1822 				break;
1823 			case 2:
1824 				enterOuterAlt(_localctx, 2);
1825 				{
1826 				setState(675);
1827 				match(LP_);
1828 				setState(676);
1829 				match(RP_);
1830 				}
1831 				break;
1832 			}
1833 		}
1834 		catch (RecognitionException re) {
1835 			_localctx.exception = re;
1836 			_errHandler.reportError(this, re);
1837 			_errHandler.recover(this, re);
1838 		}
1839 		finally {
1840 			exitRule();
1841 		}
1842 		return _localctx;
1843 	}
1844 
1845 	public static class AssignmentValueContext extends ParserRuleContext {
1846 		public BlobValueContext blobValue() {
1847 			return getRuleContext(BlobValueContext.class,0);
1848 		}
1849 		public ExprContext expr() {
1850 			return getRuleContext(ExprContext.class,0);
1851 		}
1852 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
1853 		public AssignmentValueContext(ParserRuleContext parent, int invokingState) {
1854 			super(parent, invokingState);
1855 		}
1856 		@Override public int getRuleIndex() { return RULE_assignmentValue; }
1857 		@Override
1858 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1859 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAssignmentValue(this);
1860 			else return visitor.visitChildren(this);
1861 		}
1862 	}
1863 
1864 	public final AssignmentValueContext assignmentValue() throws RecognitionException {
1865 		AssignmentValueContext _localctx = new AssignmentValueContext(_ctx, getState());
1866 		enterRule(_localctx, 32, RULE_assignmentValue);
1867 		try {
1868 			setState(682);
1869 			_errHandler.sync(this);
1870 			switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) {
1871 			case 1:
1872 				enterOuterAlt(_localctx, 1);
1873 				{
1874 				setState(679);
1875 				blobValue();
1876 				}
1877 				break;
1878 			case 2:
1879 				enterOuterAlt(_localctx, 2);
1880 				{
1881 				setState(680);
1882 				expr(0);
1883 				}
1884 				break;
1885 			case 3:
1886 				enterOuterAlt(_localctx, 3);
1887 				{
1888 				setState(681);
1889 				match(DEFAULT);
1890 				}
1891 				break;
1892 			}
1893 		}
1894 		catch (RecognitionException re) {
1895 			_localctx.exception = re;
1896 			_errHandler.reportError(this, re);
1897 			_errHandler.recover(this, re);
1898 		}
1899 		finally {
1900 			exitRule();
1901 		}
1902 		return _localctx;
1903 	}
1904 
1905 	public static class BlobValueContext extends ParserRuleContext {
1906 		public TerminalNode UL_BINARY() { return getToken(HiveStatementParser.UL_BINARY, 0); }
1907 		public String_Context string_() {
1908 			return getRuleContext(String_Context.class,0);
1909 		}
1910 		public BlobValueContext(ParserRuleContext parent, int invokingState) {
1911 			super(parent, invokingState);
1912 		}
1913 		@Override public int getRuleIndex() { return RULE_blobValue; }
1914 		@Override
1915 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1916 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitBlobValue(this);
1917 			else return visitor.visitChildren(this);
1918 		}
1919 	}
1920 
1921 	public final BlobValueContext blobValue() throws RecognitionException {
1922 		BlobValueContext _localctx = new BlobValueContext(_ctx, getState());
1923 		enterRule(_localctx, 34, RULE_blobValue);
1924 		try {
1925 			enterOuterAlt(_localctx, 1);
1926 			{
1927 			setState(684);
1928 			match(UL_BINARY);
1929 			setState(685);
1930 			string_();
1931 			}
1932 		}
1933 		catch (RecognitionException re) {
1934 			_localctx.exception = re;
1935 			_errHandler.reportError(this, re);
1936 			_errHandler.recover(this, re);
1937 		}
1938 		finally {
1939 			exitRule();
1940 		}
1941 		return _localctx;
1942 	}
1943 
1944 	public static class DeleteContext extends ParserRuleContext {
1945 		public TerminalNode DELETE() { return getToken(HiveStatementParser.DELETE, 0); }
1946 		public DeleteSpecificationContext deleteSpecification() {
1947 			return getRuleContext(DeleteSpecificationContext.class,0);
1948 		}
1949 		public SingleTableClauseContext singleTableClause() {
1950 			return getRuleContext(SingleTableClauseContext.class,0);
1951 		}
1952 		public MultipleTablesClauseContext multipleTablesClause() {
1953 			return getRuleContext(MultipleTablesClauseContext.class,0);
1954 		}
1955 		public WhereClauseContext whereClause() {
1956 			return getRuleContext(WhereClauseContext.class,0);
1957 		}
1958 		public OrderByClauseContext orderByClause() {
1959 			return getRuleContext(OrderByClauseContext.class,0);
1960 		}
1961 		public LimitClauseContext limitClause() {
1962 			return getRuleContext(LimitClauseContext.class,0);
1963 		}
1964 		public DeleteContext(ParserRuleContext parent, int invokingState) {
1965 			super(parent, invokingState);
1966 		}
1967 		@Override public int getRuleIndex() { return RULE_delete; }
1968 		@Override
1969 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
1970 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDelete(this);
1971 			else return visitor.visitChildren(this);
1972 		}
1973 	}
1974 
1975 	public final DeleteContext delete() throws RecognitionException {
1976 		DeleteContext _localctx = new DeleteContext(_ctx, getState());
1977 		enterRule(_localctx, 36, RULE_delete);
1978 		int _la;
1979 		try {
1980 			enterOuterAlt(_localctx, 1);
1981 			{
1982 			setState(687);
1983 			match(DELETE);
1984 			setState(688);
1985 			deleteSpecification();
1986 			setState(691);
1987 			_errHandler.sync(this);
1988 			switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) {
1989 			case 1:
1990 				{
1991 				setState(689);
1992 				singleTableClause();
1993 				}
1994 				break;
1995 			case 2:
1996 				{
1997 				setState(690);
1998 				multipleTablesClause();
1999 				}
2000 				break;
2001 			}
2002 			setState(694);
2003 			_errHandler.sync(this);
2004 			_la = _input.LA(1);
2005 			if (_la==WHERE) {
2006 				{
2007 				setState(693);
2008 				whereClause();
2009 				}
2010 			}
2011 
2012 			setState(697);
2013 			_errHandler.sync(this);
2014 			_la = _input.LA(1);
2015 			if (_la==ORDER) {
2016 				{
2017 				setState(696);
2018 				orderByClause();
2019 				}
2020 			}
2021 
2022 			setState(700);
2023 			_errHandler.sync(this);
2024 			_la = _input.LA(1);
2025 			if (_la==LIMIT) {
2026 				{
2027 				setState(699);
2028 				limitClause();
2029 				}
2030 			}
2031 
2032 			}
2033 		}
2034 		catch (RecognitionException re) {
2035 			_localctx.exception = re;
2036 			_errHandler.reportError(this, re);
2037 			_errHandler.recover(this, re);
2038 		}
2039 		finally {
2040 			exitRule();
2041 		}
2042 		return _localctx;
2043 	}
2044 
2045 	public static class DeleteSpecificationContext extends ParserRuleContext {
2046 		public TerminalNode LOW_PRIORITY() { return getToken(HiveStatementParser.LOW_PRIORITY, 0); }
2047 		public TerminalNode QUICK() { return getToken(HiveStatementParser.QUICK, 0); }
2048 		public TerminalNode IGNORE() { return getToken(HiveStatementParser.IGNORE, 0); }
2049 		public DeleteSpecificationContext(ParserRuleContext parent, int invokingState) {
2050 			super(parent, invokingState);
2051 		}
2052 		@Override public int getRuleIndex() { return RULE_deleteSpecification; }
2053 		@Override
2054 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
2055 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDeleteSpecification(this);
2056 			else return visitor.visitChildren(this);
2057 		}
2058 	}
2059 
2060 	public final DeleteSpecificationContext deleteSpecification() throws RecognitionException {
2061 		DeleteSpecificationContext _localctx = new DeleteSpecificationContext(_ctx, getState());
2062 		enterRule(_localctx, 38, RULE_deleteSpecification);
2063 		int _la;
2064 		try {
2065 			enterOuterAlt(_localctx, 1);
2066 			{
2067 			setState(703);
2068 			_errHandler.sync(this);
2069 			_la = _input.LA(1);
2070 			if (_la==LOW_PRIORITY) {
2071 				{
2072 				setState(702);
2073 				match(LOW_PRIORITY);
2074 				}
2075 			}
2076 
2077 			setState(706);
2078 			_errHandler.sync(this);
2079 			switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) {
2080 			case 1:
2081 				{
2082 				setState(705);
2083 				match(QUICK);
2084 				}
2085 				break;
2086 			}
2087 			setState(709);
2088 			_errHandler.sync(this);
2089 			_la = _input.LA(1);
2090 			if (_la==IGNORE) {
2091 				{
2092 				setState(708);
2093 				match(IGNORE);
2094 				}
2095 			}
2096 
2097 			}
2098 		}
2099 		catch (RecognitionException re) {
2100 			_localctx.exception = re;
2101 			_errHandler.reportError(this, re);
2102 			_errHandler.recover(this, re);
2103 		}
2104 		finally {
2105 			exitRule();
2106 		}
2107 		return _localctx;
2108 	}
2109 
2110 	public static class SingleTableClauseContext extends ParserRuleContext {
2111 		public TerminalNode FROM() { return getToken(HiveStatementParser.FROM, 0); }
2112 		public TableNameContext tableName() {
2113 			return getRuleContext(TableNameContext.class,0);
2114 		}
2115 		public AliasContext alias() {
2116 			return getRuleContext(AliasContext.class,0);
2117 		}
2118 		public PartitionNamesContext partitionNames() {
2119 			return getRuleContext(PartitionNamesContext.class,0);
2120 		}
2121 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
2122 		public SingleTableClauseContext(ParserRuleContext parent, int invokingState) {
2123 			super(parent, invokingState);
2124 		}
2125 		@Override public int getRuleIndex() { return RULE_singleTableClause; }
2126 		@Override
2127 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
2128 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSingleTableClause(this);
2129 			else return visitor.visitChildren(this);
2130 		}
2131 	}
2132 
2133 	public final SingleTableClauseContext singleTableClause() throws RecognitionException {
2134 		SingleTableClauseContext _localctx = new SingleTableClauseContext(_ctx, getState());
2135 		enterRule(_localctx, 40, RULE_singleTableClause);
2136 		int _la;
2137 		try {
2138 			enterOuterAlt(_localctx, 1);
2139 			{
2140 			setState(711);
2141 			match(FROM);
2142 			setState(712);
2143 			tableName();
2144 			setState(717);
2145 			_errHandler.sync(this);
2146 			_la = _input.LA(1);
2147 			if (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (GROUP_CONCAT - 47)) | (1L << (CAST - 47)) | (1L << (POSITION - 47)) | (1L << (SUBSTRING - 47)) | (1L << (SUBSTR - 47)) | (1L << (EXTRACT - 47)) | (1L << (TRIM - 47)) | (1L << (LAST_DAY - 47)) | (1L << (TRADITIONAL - 47)) | (1L << (TREE - 47)) | (1L << (MYSQL_MAIN - 47)) | (1L << (MYSQL_ADMIN - 47)) | (1L << (INSTANT - 47)) | (1L << (INPLACE - 47)) | (1L << (COPY - 47)) | (1L << (UL_BINARY - 47)) | (1L << (AUTOCOMMIT - 47)) | (1L << (INNODB - 47)) | (1L << (REDO_LOG - 47)) | (1L << (ACCOUNT - 47)) | (1L << (ACTION - 47)) | (1L << (ACTIVE - 47)) | (1L << (ADMIN - 47)) | (1L << (AFTER - 47)) | (1L << (AGAINST - 47)) | (1L << (AGGREGATE - 47)) | (1L << (ALGORITHM - 47)) | (1L << (ALWAYS - 47)) | (1L << (ANY - 47)) | (1L << (ARRAY - 47)) | (1L << (AS - 47)) | (1L << (ASCII - 47)) | (1L << (AT - 47)) | (1L << (ATTRIBUTE - 47)) | (1L << (AUTOEXTEND_SIZE - 47)) | (1L << (AUTO_INCREMENT - 47)) | (1L << (AVG - 47)) | (1L << (BIT_XOR - 47)) | (1L << (AVG_ROW_LENGTH - 47)) | (1L << (BACKUP - 47)) | (1L << (BEGIN - 47)) | (1L << (BINLOG - 47)) | (1L << (BIT - 47)) | (1L << (BLOCK - 47)))) != 0) || ((((_la - 111)) & ~0x3f) == 0 && ((1L << (_la - 111)) & ((1L << (BOOL - 111)) | (1L << (BOOLEAN - 111)) | (1L << (BTREE - 111)) | (1L << (BUCKETS - 111)) | (1L << (BYTE - 111)) | (1L << (CACHE - 111)) | (1L << (CASCADED - 111)) | (1L << (CATALOG_NAME - 111)) | (1L << (CHAIN - 111)) | (1L << (CHANGED - 111)) | (1L << (CHANNEL - 111)) | (1L << (CHARSET - 111)) | (1L << (CHECKSUM - 111)) | (1L << (CIPHER - 111)) | (1L << (CLASS_ORIGIN - 111)) | (1L << (CLIENT - 111)) | (1L << (CLONE - 111)) | (1L << (CLOSE - 111)) | (1L << (COALESCE - 111)) | (1L << (CODE - 111)) | (1L << (COLLATION - 111)) | (1L << (COLUMNS - 111)) | (1L << (COLUMN_FORMAT - 111)) | (1L << (COLUMN_NAME - 111)) | (1L << (COMMENT - 111)) | (1L << (COMMIT - 111)) | (1L << (COMMITTED - 111)) | (1L << (COMPACT - 111)) | (1L << (COMPLETION - 111)) | (1L << (COMPONENT - 111)) | (1L << (COMPRESSED - 111)) | (1L << (COMPRESSION - 111)) | (1L << (CONCURRENT - 111)) | (1L << (CONNECTION - 111)) | (1L << (CONSISTENT - 111)) | (1L << (CONSTRAINT_CATALOG - 111)) | (1L << (CONSTRAINT_NAME - 111)) | (1L << (CONSTRAINT_SCHEMA - 111)) | (1L << (CONTAINS - 111)) | (1L << (CONTEXT - 111)) | (1L << (CPU - 111)) | (1L << (CREATE - 111)) | (1L << (CURRENT - 111)))) != 0) || ((((_la - 179)) & ~0x3f) == 0 && ((1L << (_la - 179)) & ((1L << (CURSOR_NAME - 179)) | (1L << (DATA - 179)) | (1L << (DATAFILE - 179)) | (1L << (DATE - 179)) | (1L << (DATETIME - 179)) | (1L << (DAY - 179)) | (1L << (DAY_MINUTE - 179)) | (1L << (DEALLOCATE - 179)) | (1L << (DEFAULT_AUTH - 179)) | (1L << (DEFINER - 179)) | (1L << (DEFINITION - 179)) | (1L << (DELAY_KEY_WRITE - 179)) | (1L << (DESCRIPTION - 179)) | (1L << (DIAGNOSTICS - 179)) | (1L << (DIRECTORY - 179)) | (1L << (DISABLE - 179)) | (1L << (DISCARD - 179)) | (1L << (DISK - 179)) | (1L << (DO - 179)) | (1L << (DUMPFILE - 179)) | (1L << (DUPLICATE - 179)) | (1L << (DYNAMIC - 179)) | (1L << (ENABLE - 179)) | (1L << (ENCRYPTION - 179)) | (1L << (END - 179)) | (1L << (ENDS - 179)) | (1L << (ENFORCED - 179)) | (1L << (ENGINE - 179)) | (1L << (ENGINES - 179)) | (1L << (ENGINE_ATTRIBUTE - 179)) | (1L << (ENUM - 179)) | (1L << (ERROR - 179)) | (1L << (ERRORS - 179)) | (1L << (ESCAPE - 179)) | (1L << (EVENT - 179)) | (1L << (EVENTS - 179)) | (1L << (EVERY - 179)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (EXCHANGE - 244)) | (1L << (EXCLUDE - 244)) | (1L << (EXECUTE - 244)) | (1L << (EXPANSION - 244)) | (1L << (EXPIRE - 244)) | (1L << (EXPORT - 244)) | (1L << (EXTENDED - 244)) | (1L << (EXTENT_SIZE - 244)) | (1L << (FAILED_LOGIN_ATTEMPTS - 244)) | (1L << (FAST - 244)) | (1L << (FAULTS - 244)) | (1L << (FILE - 244)) | (1L << (FILE_BLOCK_SIZE - 244)) | (1L << (FILTER - 244)) | (1L << (FIRST - 244)) | (1L << (FIXED - 244)) | (1L << (FLUSH - 244)) | (1L << (FOLLOWING - 244)) | (1L << (FOLLOWS - 244)) | (1L << (FORMAT - 244)) | (1L << (FOUND - 244)) | (1L << (FULL - 244)) | (1L << (GENERAL - 244)) | (1L << (GEOMETRY - 244)) | (1L << (GEOMETRYCOLLECTION - 244)) | (1L << (GET_FORMAT - 244)) | (1L << (GET_MASTER_PUBLIC_KEY - 244)) | (1L << (GLOBAL - 244)) | (1L << (GRANTS - 244)) | (1L << (GROUP_REPLICATION - 244)) | (1L << (HANDLER - 244)) | (1L << (HASH - 244)) | (1L << (HELP - 244)) | (1L << (HISTOGRAM - 244)) | (1L << (HISTORY - 244)) | (1L << (HOST - 244)) | (1L << (HOSTS - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (HOUR - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INACTIVE - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTALL - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVISIBLE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (JSON - 308)) | (1L << (JSON_VALUE - 308)) | (1L << (KEY - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LAST_VALUE - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)))) != 0) || ((((_la - 373)) & ~0x3f) == 0 && ((1L << (_la - 373)) & ((1L << (LINESTRING - 373)) | (1L << (LIST - 373)) | (1L << (LOCAL - 373)) | (1L << (LOCKED - 373)) | (1L << (LOCKS - 373)) | (1L << (LOGFILE - 373)) | (1L << (LOGS - 373)) | (1L << (MASTER - 373)) | (1L << (MASTER_AUTO_POSITION - 373)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 373)) | (1L << (MASTER_CONNECT_RETRY - 373)) | (1L << (MASTER_DELAY - 373)) | (1L << (MASTER_HEARTBEAT_PERIOD - 373)) | (1L << (MASTER_HOST - 373)) | (1L << (MASTER_LOG_FILE - 373)) | (1L << (MASTER_LOG_POS - 373)) | (1L << (MASTER_PASSWORD - 373)) | (1L << (MASTER_PORT - 373)) | (1L << (MASTER_PUBLIC_KEY_PATH - 373)) | (1L << (MASTER_RETRY_COUNT - 373)) | (1L << (MASTER_SERVER_ID - 373)) | (1L << (MASTER_SSL - 373)) | (1L << (MASTER_SSL_CA - 373)) | (1L << (MASTER_SSL_CAPATH - 373)) | (1L << (MASTER_SSL_CERT - 373)) | (1L << (MASTER_SSL_CIPHER - 373)) | (1L << (MASTER_SSL_CRL - 373)) | (1L << (MASTER_SSL_CRLPATH - 373)) | (1L << (MASTER_SSL_KEY - 373)) | (1L << (MASTER_TLS_CIPHERSUITES - 373)) | (1L << (MASTER_TLS_VERSION - 373)) | (1L << (MASTER_USER - 373)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 373)) | (1L << (MAXVALUE - 373)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 373)) | (1L << (MAX_QUERIES_PER_HOUR - 373)) | (1L << (MAX_ROWS - 373)) | (1L << (MAX_SIZE - 373)) | (1L << (MAX_UPDATES_PER_HOUR - 373)) | (1L << (MAX_USER_CONNECTIONS - 373)) | (1L << (MEDIUM - 373)) | (1L << (MEMBER - 373)) | (1L << (MEMORY - 373)) | (1L << (MERGE - 373)) | (1L << (MESSAGE_TEXT - 373)) | (1L << (MICROSECOND - 373)))) != 0) || ((((_la - 437)) & ~0x3f) == 0 && ((1L << (_la - 437)) & ((1L << (MIGRATE - 437)) | (1L << (MINUTE - 437)) | (1L << (MIN_ROWS - 437)) | (1L << (MODE - 437)) | (1L << (MODIFY - 437)) | (1L << (MONTH - 437)) | (1L << (MULTILINESTRING - 437)) | (1L << (MULTIPOINT - 437)) | (1L << (MULTIPOLYGON - 437)) | (1L << (MUTEX - 437)) | (1L << (MYSQL_ERRNO - 437)) | (1L << (NAME - 437)) | (1L << (NAMES - 437)) | (1L << (NATIONAL - 437)) | (1L << (NCHAR - 437)) | (1L << (NDBCLUSTER - 437)) | (1L << (NESTED - 437)) | (1L << (NETWORK_NAMESPACE - 437)) | (1L << (NEVER - 437)) | (1L << (NEW - 437)) | (1L << (NEXT - 437)) | (1L << (NO - 437)) | (1L << (NODEGROUP - 437)) | (1L << (NONE - 437)) | (1L << (NOWAIT - 437)) | (1L << (NO_WAIT - 437)) | (1L << (NULLS - 437)) | (1L << (NUMBER - 437)) | (1L << (NVARCHAR - 437)) | (1L << (OFF - 437)) | (1L << (OFFSET - 437)) | (1L << (OJ - 437)) | (1L << (OLD - 437)) | (1L << (ONE - 437)) | (1L << (ONLY - 437)) | (1L << (OPEN - 437)) | (1L << (OPTIONAL - 437)) | (1L << (OPTIONS - 437)) | (1L << (ORDINALITY - 437)) | (1L << (ORGANIZATION - 437)) | (1L << (OTHERS - 437)))) != 0) || ((((_la - 505)) & ~0x3f) == 0 && ((1L << (_la - 505)) & ((1L << (OWNER - 505)) | (1L << (PACK_KEYS - 505)) | (1L << (PAGE - 505)) | (1L << (PARSER - 505)) | (1L << (PARTIAL - 505)) | (1L << (PARTITIONING - 505)) | (1L << (PARTITIONS - 505)) | (1L << (PASSWORD - 505)) | (1L << (PASSWORD_LOCK_TIME - 505)) | (1L << (PATH - 505)) | (1L << (PERSIST - 505)) | (1L << (PERSIST_ONLY - 505)) | (1L << (PHASE - 505)) | (1L << (PLUGIN - 505)) | (1L << (PLUGINS - 505)) | (1L << (PLUGIN_DIR - 505)) | (1L << (POINT - 505)) | (1L << (POLYGON - 505)) | (1L << (PORT - 505)) | (1L << (PRECEDES - 505)) | (1L << (PRECEDING - 505)) | (1L << (PREPARE - 505)) | (1L << (PRESERVE - 505)) | (1L << (PREV - 505)) | (1L << (PRIMARY - 505)) | (1L << (PRIVILEGES - 505)) | (1L << (PRIVILEGE_CHECKS_USER - 505)) | (1L << (PROCESS - 505)) | (1L << (PROCESSLIST - 505)) | (1L << (PROFILE - 505)) | (1L << (PROFILES - 505)) | (1L << (PROXY - 505)) | (1L << (QUARTER - 505)) | (1L << (QUERY - 505)) | (1L << (QUICK - 505)) | (1L << (RANDOM - 505)) | (1L << (READ_ONLY - 505)) | (1L << (REBUILD - 505)) | (1L << (RECOVER - 505)) | (1L << (REDO_BUFFER_SIZE - 505)) | (1L << (REDUNDANT - 505)) | (1L << (REFERENCE - 505)) | (1L << (RELAY - 505)) | (1L << (RELAYLOG - 505)) | (1L << (RELAY_LOG_FILE - 505)) | (1L << (RELAY_LOG_POS - 505)) | (1L << (RELAY_THREAD - 505)) | (1L << (RELOAD - 505)) | (1L << (REMOVE - 505)))) != 0) || ((((_la - 570)) & ~0x3f) == 0 && ((1L << (_la - 570)) & ((1L << (REORGANIZE - 570)) | (1L << (REPAIR - 570)) | (1L << (REPEATABLE - 570)) | (1L << (REPLICATE_DO_DB - 570)) | (1L << (REPLICATE_DO_TABLE - 570)) | (1L << (REPLICATE_IGNORE_DB - 570)) | (1L << (REPLICATE_IGNORE_TABLE - 570)) | (1L << (REPLICATE_REWRITE_DB - 570)) | (1L << (REPLICATE_WILD_DO_TABLE - 570)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 570)) | (1L << (REPLICATION - 570)) | (1L << (REQUIRE_ROW_FORMAT - 570)) | (1L << (RESET - 570)) | (1L << (RESOURCE - 570)) | (1L << (RESPECT - 570)) | (1L << (RESTART - 570)) | (1L << (RESTORE - 570)) | (1L << (RESUME - 570)) | (1L << (RETAIN - 570)) | (1L << (RETURNED_SQLSTATE - 570)) | (1L << (RETURNING - 570)) | (1L << (RETURNS - 570)) | (1L << (REUSE - 570)) | (1L << (REVERSE - 570)) | (1L << (ROLE - 570)) | (1L << (ROLLBACK - 570)) | (1L << (ROLLUP - 570)) | (1L << (ROTATE - 570)) | (1L << (ROUTINE - 570)) | (1L << (ROW_COUNT - 570)) | (1L << (ROW_FORMAT - 570)) | (1L << (RTREE - 570)) | (1L << (SAVEPOINT - 570)) | (1L << (SCHEDULE - 570)) | (1L << (SCHEMA_NAME - 570)) | (1L << (SECOND - 570)) | (1L << (SECONDARY - 570)) | (1L << (SECONDARY_ENGINE - 570)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 570)) | (1L << (SECONDARY_LOAD - 570)) | (1L << (SECONDARY_UNLOAD - 570)) | (1L << (SECURITY - 570)) | (1L << (SERIAL - 570)))) != 0) || ((((_la - 634)) & ~0x3f) == 0 && ((1L << (_la - 634)) & ((1L << (SERIALIZABLE - 634)) | (1L << (SERVER - 634)) | (1L << (SESSION - 634)) | (1L << (SHARE - 634)) | (1L << (SHUTDOWN - 634)) | (1L << (SIGNED - 634)) | (1L << (SIMPLE - 634)) | (1L << (SLAVE - 634)) | (1L << (SLOW - 634)) | (1L << (SNAPSHOT - 634)) | (1L << (SOCKET - 634)) | (1L << (SONAME - 634)) | (1L << (SOUNDS - 634)) | (1L << (SOURCE - 634)) | (1L << (SQL_AFTER_GTIDS - 634)) | (1L << (SQL_AFTER_MTS_GAPS - 634)) | (1L << (SQL_BEFORE_GTIDS - 634)) | (1L << (SQL_BUFFER_RESULT - 634)) | (1L << (SQL_NO_CACHE - 634)) | (1L << (SQL_THREAD - 634)) | (1L << (SRID - 634)) | (1L << (STACKED - 634)) | (1L << (START - 634)) | (1L << (STARTS - 634)) | (1L << (STATS_AUTO_RECALC - 634)) | (1L << (STATS_PERSISTENT - 634)) | (1L << (STATS_SAMPLE_PAGES - 634)) | (1L << (STATUS - 634)) | (1L << (STOP - 634)) | (1L << (STORAGE - 634)) | (1L << (STREAM - 634)) | (1L << (STRING - 634)) | (1L << (SUBCLASS_ORIGIN - 634)) | (1L << (SUBJECT - 634)) | (1L << (SUBPARTITION - 634)) | (1L << (SUBPARTITIONS - 634)) | (1L << (SUPER - 634)) | (1L << (SUSPEND - 634)) | (1L << (SWAPS - 634)) | (1L << (SWITCHES - 634)) | (1L << (SYSTEM - 634)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (SINGLE_QUOTED_TEXT - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (UNDERSCORE_CHARSET - 787)))) != 0) || _la==IDENTIFIER_ || _la==IP_ADDRESS) {
2148 				{
2149 				setState(714);
2150 				_errHandler.sync(this);
2151 				_la = _input.LA(1);
2152 				if (_la==AS) {
2153 					{
2154 					setState(713);
2155 					match(AS);
2156 					}
2157 				}
2158 
2159 				setState(716);
2160 				alias();
2161 				}
2162 			}
2163 
2164 			setState(720);
2165 			_errHandler.sync(this);
2166 			_la = _input.LA(1);
2167 			if (_la==PARTITION) {
2168 				{
2169 				setState(719);
2170 				partitionNames();
2171 				}
2172 			}
2173 
2174 			}
2175 		}
2176 		catch (RecognitionException re) {
2177 			_localctx.exception = re;
2178 			_errHandler.reportError(this, re);
2179 			_errHandler.recover(this, re);
2180 		}
2181 		finally {
2182 			exitRule();
2183 		}
2184 		return _localctx;
2185 	}
2186 
2187 	public static class MultipleTablesClauseContext extends ParserRuleContext {
2188 		public TableAliasRefListContext tableAliasRefList() {
2189 			return getRuleContext(TableAliasRefListContext.class,0);
2190 		}
2191 		public TerminalNode FROM() { return getToken(HiveStatementParser.FROM, 0); }
2192 		public TableReferencesContext tableReferences() {
2193 			return getRuleContext(TableReferencesContext.class,0);
2194 		}
2195 		public TerminalNode USING() { return getToken(HiveStatementParser.USING, 0); }
2196 		public MultipleTablesClauseContext(ParserRuleContext parent, int invokingState) {
2197 			super(parent, invokingState);
2198 		}
2199 		@Override public int getRuleIndex() { return RULE_multipleTablesClause; }
2200 		@Override
2201 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
2202 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitMultipleTablesClause(this);
2203 			else return visitor.visitChildren(this);
2204 		}
2205 	}
2206 
2207 	public final MultipleTablesClauseContext multipleTablesClause() throws RecognitionException {
2208 		MultipleTablesClauseContext _localctx = new MultipleTablesClauseContext(_ctx, getState());
2209 		enterRule(_localctx, 42, RULE_multipleTablesClause);
2210 		try {
2211 			setState(731);
2212 			_errHandler.sync(this);
2213 			switch (_input.LA(1)) {
2214 			case MAX:
2215 			case MIN:
2216 			case SUM:
2217 			case COUNT:
2218 			case GROUP_CONCAT:
2219 			case CAST:
2220 			case POSITION:
2221 			case SUBSTRING:
2222 			case SUBSTR:
2223 			case EXTRACT:
2224 			case TRIM:
2225 			case LAST_DAY:
2226 			case TRADITIONAL:
2227 			case TREE:
2228 			case MYSQL_MAIN:
2229 			case MYSQL_ADMIN:
2230 			case INSTANT:
2231 			case INPLACE:
2232 			case COPY:
2233 			case UL_BINARY:
2234 			case AUTOCOMMIT:
2235 			case INNODB:
2236 			case REDO_LOG:
2237 			case ACCOUNT:
2238 			case ACTION:
2239 			case ACTIVE:
2240 			case ADMIN:
2241 			case AFTER:
2242 			case AGAINST:
2243 			case AGGREGATE:
2244 			case ALGORITHM:
2245 			case ALWAYS:
2246 			case ANY:
2247 			case ARRAY:
2248 			case ASCII:
2249 			case AT:
2250 			case ATTRIBUTE:
2251 			case AUTOEXTEND_SIZE:
2252 			case AUTO_INCREMENT:
2253 			case AVG:
2254 			case BIT_XOR:
2255 			case AVG_ROW_LENGTH:
2256 			case BACKUP:
2257 			case BEGIN:
2258 			case BINLOG:
2259 			case BIT:
2260 			case BLOCK:
2261 			case BOOL:
2262 			case BOOLEAN:
2263 			case BTREE:
2264 			case BUCKETS:
2265 			case BYTE:
2266 			case CACHE:
2267 			case CASCADED:
2268 			case CATALOG_NAME:
2269 			case CHAIN:
2270 			case CHANGED:
2271 			case CHANNEL:
2272 			case CHARSET:
2273 			case CHECKSUM:
2274 			case CIPHER:
2275 			case CLASS_ORIGIN:
2276 			case CLIENT:
2277 			case CLONE:
2278 			case CLOSE:
2279 			case COALESCE:
2280 			case CODE:
2281 			case COLLATION:
2282 			case COLUMNS:
2283 			case COLUMN_FORMAT:
2284 			case COLUMN_NAME:
2285 			case COMMENT:
2286 			case COMMIT:
2287 			case COMMITTED:
2288 			case COMPACT:
2289 			case COMPLETION:
2290 			case COMPONENT:
2291 			case COMPRESSED:
2292 			case COMPRESSION:
2293 			case CONCURRENT:
2294 			case CONNECTION:
2295 			case CONSISTENT:
2296 			case CONSTRAINT_CATALOG:
2297 			case CONSTRAINT_NAME:
2298 			case CONSTRAINT_SCHEMA:
2299 			case CONTAINS:
2300 			case CONTEXT:
2301 			case CPU:
2302 			case CREATE:
2303 			case CURRENT:
2304 			case CURSOR_NAME:
2305 			case DATA:
2306 			case DATAFILE:
2307 			case DATE:
2308 			case DATETIME:
2309 			case DAY:
2310 			case DAY_MINUTE:
2311 			case DEALLOCATE:
2312 			case DEFAULT_AUTH:
2313 			case DEFINER:
2314 			case DEFINITION:
2315 			case DELAY_KEY_WRITE:
2316 			case DESCRIPTION:
2317 			case DIAGNOSTICS:
2318 			case DIRECTORY:
2319 			case DISABLE:
2320 			case DISCARD:
2321 			case DISK:
2322 			case DO:
2323 			case DUMPFILE:
2324 			case DUPLICATE:
2325 			case DYNAMIC:
2326 			case ENABLE:
2327 			case ENCRYPTION:
2328 			case END:
2329 			case ENDS:
2330 			case ENFORCED:
2331 			case ENGINE:
2332 			case ENGINES:
2333 			case ENGINE_ATTRIBUTE:
2334 			case ENUM:
2335 			case ERROR:
2336 			case ERRORS:
2337 			case ESCAPE:
2338 			case EVENT:
2339 			case EVENTS:
2340 			case EVERY:
2341 			case EXCHANGE:
2342 			case EXCLUDE:
2343 			case EXECUTE:
2344 			case EXPANSION:
2345 			case EXPIRE:
2346 			case EXPORT:
2347 			case EXTENDED:
2348 			case EXTENT_SIZE:
2349 			case FAILED_LOGIN_ATTEMPTS:
2350 			case FAST:
2351 			case FAULTS:
2352 			case FILE:
2353 			case FILE_BLOCK_SIZE:
2354 			case FILTER:
2355 			case FIRST:
2356 			case FIXED:
2357 			case FLUSH:
2358 			case FOLLOWING:
2359 			case FOLLOWS:
2360 			case FORMAT:
2361 			case FOUND:
2362 			case FULL:
2363 			case GENERAL:
2364 			case GEOMETRY:
2365 			case GEOMETRYCOLLECTION:
2366 			case GET_FORMAT:
2367 			case GET_MASTER_PUBLIC_KEY:
2368 			case GLOBAL:
2369 			case GRANTS:
2370 			case GROUP_REPLICATION:
2371 			case HANDLER:
2372 			case HASH:
2373 			case HELP:
2374 			case HISTOGRAM:
2375 			case HISTORY:
2376 			case HOST:
2377 			case HOSTS:
2378 			case HOUR:
2379 			case IDENTIFIED:
2380 			case IGNORE_SERVER_IDS:
2381 			case IMPORT:
2382 			case INACTIVE:
2383 			case INDEXES:
2384 			case INITIAL_SIZE:
2385 			case INSERT_METHOD:
2386 			case INSTALL:
2387 			case INSTANCE:
2388 			case INVISIBLE:
2389 			case INVOKER:
2390 			case IO:
2391 			case IPC:
2392 			case ISOLATION:
2393 			case ISSUER:
2394 			case JSON:
2395 			case JSON_VALUE:
2396 			case KEY:
2397 			case KEY_BLOCK_SIZE:
2398 			case LANGUAGE:
2399 			case LAST:
2400 			case LAST_VALUE:
2401 			case LEAVES:
2402 			case LESS:
2403 			case LEVEL:
2404 			case LINESTRING:
2405 			case LIST:
2406 			case LOCAL:
2407 			case LOCKED:
2408 			case LOCKS:
2409 			case LOGFILE:
2410 			case LOGS:
2411 			case MASTER:
2412 			case MASTER_AUTO_POSITION:
2413 			case MASTER_COMPRESSION_ALGORITHM:
2414 			case MASTER_CONNECT_RETRY:
2415 			case MASTER_DELAY:
2416 			case MASTER_HEARTBEAT_PERIOD:
2417 			case MASTER_HOST:
2418 			case MASTER_LOG_FILE:
2419 			case MASTER_LOG_POS:
2420 			case MASTER_PASSWORD:
2421 			case MASTER_PORT:
2422 			case MASTER_PUBLIC_KEY_PATH:
2423 			case MASTER_RETRY_COUNT:
2424 			case MASTER_SERVER_ID:
2425 			case MASTER_SSL:
2426 			case MASTER_SSL_CA:
2427 			case MASTER_SSL_CAPATH:
2428 			case MASTER_SSL_CERT:
2429 			case MASTER_SSL_CIPHER:
2430 			case MASTER_SSL_CRL:
2431 			case MASTER_SSL_CRLPATH:
2432 			case MASTER_SSL_KEY:
2433 			case MASTER_TLS_CIPHERSUITES:
2434 			case MASTER_TLS_VERSION:
2435 			case MASTER_USER:
2436 			case MASTER_ZSTD_COMPRESSION_LEVEL:
2437 			case MAXVALUE:
2438 			case MAX_CONNECTIONS_PER_HOUR:
2439 			case MAX_QUERIES_PER_HOUR:
2440 			case MAX_ROWS:
2441 			case MAX_SIZE:
2442 			case MAX_UPDATES_PER_HOUR:
2443 			case MAX_USER_CONNECTIONS:
2444 			case MEDIUM:
2445 			case MEMBER:
2446 			case MEMORY:
2447 			case MERGE:
2448 			case MESSAGE_TEXT:
2449 			case MICROSECOND:
2450 			case MIGRATE:
2451 			case MINUTE:
2452 			case MIN_ROWS:
2453 			case MODE:
2454 			case MODIFY:
2455 			case MONTH:
2456 			case MULTILINESTRING:
2457 			case MULTIPOINT:
2458 			case MULTIPOLYGON:
2459 			case MUTEX:
2460 			case MYSQL_ERRNO:
2461 			case NAME:
2462 			case NAMES:
2463 			case NATIONAL:
2464 			case NCHAR:
2465 			case NDBCLUSTER:
2466 			case NESTED:
2467 			case NETWORK_NAMESPACE:
2468 			case NEVER:
2469 			case NEW:
2470 			case NEXT:
2471 			case NO:
2472 			case NODEGROUP:
2473 			case NONE:
2474 			case NOWAIT:
2475 			case NO_WAIT:
2476 			case NULLS:
2477 			case NUMBER:
2478 			case NVARCHAR:
2479 			case OFF:
2480 			case OFFSET:
2481 			case OJ:
2482 			case OLD:
2483 			case ONE:
2484 			case ONLY:
2485 			case OPEN:
2486 			case OPTIONAL:
2487 			case OPTIONS:
2488 			case ORDINALITY:
2489 			case ORGANIZATION:
2490 			case OTHERS:
2491 			case OWNER:
2492 			case PACK_KEYS:
2493 			case PAGE:
2494 			case PARSER:
2495 			case PARTIAL:
2496 			case PARTITIONING:
2497 			case PARTITIONS:
2498 			case PASSWORD:
2499 			case PASSWORD_LOCK_TIME:
2500 			case PATH:
2501 			case PERSIST:
2502 			case PERSIST_ONLY:
2503 			case PHASE:
2504 			case PLUGIN:
2505 			case PLUGINS:
2506 			case PLUGIN_DIR:
2507 			case POINT:
2508 			case POLYGON:
2509 			case PORT:
2510 			case PRECEDES:
2511 			case PRECEDING:
2512 			case PREPARE:
2513 			case PRESERVE:
2514 			case PREV:
2515 			case PRIMARY:
2516 			case PRIVILEGES:
2517 			case PRIVILEGE_CHECKS_USER:
2518 			case PROCESS:
2519 			case PROCESSLIST:
2520 			case PROFILE:
2521 			case PROFILES:
2522 			case PROXY:
2523 			case QUARTER:
2524 			case QUERY:
2525 			case QUICK:
2526 			case RANDOM:
2527 			case READ_ONLY:
2528 			case REBUILD:
2529 			case RECOVER:
2530 			case REDO_BUFFER_SIZE:
2531 			case REDUNDANT:
2532 			case REFERENCE:
2533 			case RELAY:
2534 			case RELAYLOG:
2535 			case RELAY_LOG_FILE:
2536 			case RELAY_LOG_POS:
2537 			case RELAY_THREAD:
2538 			case RELOAD:
2539 			case REMOVE:
2540 			case REORGANIZE:
2541 			case REPAIR:
2542 			case REPEATABLE:
2543 			case REPLICATE_DO_DB:
2544 			case REPLICATE_DO_TABLE:
2545 			case REPLICATE_IGNORE_DB:
2546 			case REPLICATE_IGNORE_TABLE:
2547 			case REPLICATE_REWRITE_DB:
2548 			case REPLICATE_WILD_DO_TABLE:
2549 			case REPLICATE_WILD_IGNORE_TABLE:
2550 			case REPLICATION:
2551 			case REQUIRE_ROW_FORMAT:
2552 			case RESET:
2553 			case RESOURCE:
2554 			case RESPECT:
2555 			case RESTART:
2556 			case RESTORE:
2557 			case RESUME:
2558 			case RETAIN:
2559 			case RETURNED_SQLSTATE:
2560 			case RETURNING:
2561 			case RETURNS:
2562 			case REUSE:
2563 			case REVERSE:
2564 			case ROLE:
2565 			case ROLLBACK:
2566 			case ROLLUP:
2567 			case ROTATE:
2568 			case ROUTINE:
2569 			case ROW_COUNT:
2570 			case ROW_FORMAT:
2571 			case RTREE:
2572 			case SAVEPOINT:
2573 			case SCHEDULE:
2574 			case SCHEMA_NAME:
2575 			case SECOND:
2576 			case SECONDARY:
2577 			case SECONDARY_ENGINE:
2578 			case SECONDARY_ENGINE_ATTRIBUTE:
2579 			case SECONDARY_LOAD:
2580 			case SECONDARY_UNLOAD:
2581 			case SECURITY:
2582 			case SERIAL:
2583 			case SERIALIZABLE:
2584 			case SERVER:
2585 			case SESSION:
2586 			case SHARE:
2587 			case SHUTDOWN:
2588 			case SIGNED:
2589 			case SIMPLE:
2590 			case SLAVE:
2591 			case SLOW:
2592 			case SNAPSHOT:
2593 			case SOCKET:
2594 			case SONAME:
2595 			case SOUNDS:
2596 			case SOURCE:
2597 			case SQL_AFTER_GTIDS:
2598 			case SQL_AFTER_MTS_GAPS:
2599 			case SQL_BEFORE_GTIDS:
2600 			case SQL_BUFFER_RESULT:
2601 			case SQL_NO_CACHE:
2602 			case SQL_THREAD:
2603 			case SRID:
2604 			case STACKED:
2605 			case START:
2606 			case STARTS:
2607 			case STATS_AUTO_RECALC:
2608 			case STATS_PERSISTENT:
2609 			case STATS_SAMPLE_PAGES:
2610 			case STATUS:
2611 			case STOP:
2612 			case STORAGE:
2613 			case STREAM:
2614 			case STRING:
2615 			case SUBCLASS_ORIGIN:
2616 			case SUBJECT:
2617 			case SUBPARTITION:
2618 			case SUBPARTITIONS:
2619 			case SUPER:
2620 			case SUSPEND:
2621 			case SWAPS:
2622 			case SWITCHES:
2623 			case SYSTEM:
2624 			case TABLE:
2625 			case TABLES:
2626 			case TABLESPACE:
2627 			case TABLE_CHECKSUM:
2628 			case TABLE_NAME:
2629 			case TEMPORARY:
2630 			case TEMPTABLE:
2631 			case TEXT:
2632 			case THAN:
2633 			case THREAD_PRIORITY:
2634 			case TIES:
2635 			case TIME:
2636 			case TIMESTAMP:
2637 			case TIMESTAMP_ADD:
2638 			case TIMESTAMP_DIFF:
2639 			case TLS:
2640 			case TRANSACTION:
2641 			case TRIGGERS:
2642 			case TRUNCATE:
2643 			case TYPE:
2644 			case TYPES:
2645 			case UNBOUNDED:
2646 			case UNCOMMITTED:
2647 			case UNDEFINED:
2648 			case UNDOFILE:
2649 			case UNDO_BUFFER_SIZE:
2650 			case UNICODE:
2651 			case UNINSTALL:
2652 			case UNKNOWN:
2653 			case UNTIL:
2654 			case UPGRADE:
2655 			case USER:
2656 			case USER_RESOURCES:
2657 			case USE_FRM:
2658 			case UTC_DATE:
2659 			case UTC_TIME:
2660 			case UTC_TIMESTAMP:
2661 			case VALIDATION:
2662 			case VALUE:
2663 			case VARIABLES:
2664 			case VCPU:
2665 			case VIEW:
2666 			case VISIBLE:
2667 			case WAIT:
2668 			case WARNINGS:
2669 			case WEEK:
2670 			case WEIGHT_STRING:
2671 			case WITHOUT:
2672 			case WORK:
2673 			case WRAPPER:
2674 			case X509:
2675 			case XA:
2676 			case XID:
2677 			case XML:
2678 			case YEAR:
2679 			case YEAR_MONTH:
2680 			case DOUBLE_QUOTED_TEXT:
2681 			case BQUOTA_STRING:
2682 			case UNDERSCORE_CHARSET:
2683 			case IDENTIFIER_:
2684 				enterOuterAlt(_localctx, 1);
2685 				{
2686 				setState(722);
2687 				tableAliasRefList();
2688 				setState(723);
2689 				match(FROM);
2690 				setState(724);
2691 				tableReferences();
2692 				}
2693 				break;
2694 			case FROM:
2695 				enterOuterAlt(_localctx, 2);
2696 				{
2697 				setState(726);
2698 				match(FROM);
2699 				setState(727);
2700 				tableAliasRefList();
2701 				setState(728);
2702 				match(USING);
2703 				setState(729);
2704 				tableReferences();
2705 				}
2706 				break;
2707 			default:
2708 				throw new NoViableAltException(this);
2709 			}
2710 		}
2711 		catch (RecognitionException re) {
2712 			_localctx.exception = re;
2713 			_errHandler.reportError(this, re);
2714 			_errHandler.recover(this, re);
2715 		}
2716 		finally {
2717 			exitRule();
2718 		}
2719 		return _localctx;
2720 	}
2721 
2722 	public static class SelectContext extends ParserRuleContext {
2723 		public QueryExpressionContext queryExpression() {
2724 			return getRuleContext(QueryExpressionContext.class,0);
2725 		}
2726 		public LockClauseListContext lockClauseList() {
2727 			return getRuleContext(LockClauseListContext.class,0);
2728 		}
2729 		public QueryExpressionParensContext queryExpressionParens() {
2730 			return getRuleContext(QueryExpressionParensContext.class,0);
2731 		}
2732 		public SelectWithIntoContext selectWithInto() {
2733 			return getRuleContext(SelectWithIntoContext.class,0);
2734 		}
2735 		public SelectContext(ParserRuleContext parent, int invokingState) {
2736 			super(parent, invokingState);
2737 		}
2738 		@Override public int getRuleIndex() { return RULE_select; }
2739 		@Override
2740 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
2741 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSelect(this);
2742 			else return visitor.visitChildren(this);
2743 		}
2744 	}
2745 
2746 	public final SelectContext select() throws RecognitionException {
2747 		SelectContext _localctx = new SelectContext(_ctx, getState());
2748 		enterRule(_localctx, 44, RULE_select);
2749 		int _la;
2750 		try {
2751 			setState(739);
2752 			_errHandler.sync(this);
2753 			switch ( getInterpreter().adaptivePredict(_input,48,_ctx) ) {
2754 			case 1:
2755 				enterOuterAlt(_localctx, 1);
2756 				{
2757 				setState(733);
2758 				queryExpression();
2759 				setState(735);
2760 				_errHandler.sync(this);
2761 				_la = _input.LA(1);
2762 				if (_la==FOR || _la==LOCK) {
2763 					{
2764 					setState(734);
2765 					lockClauseList();
2766 					}
2767 				}
2768 
2769 				}
2770 				break;
2771 			case 2:
2772 				enterOuterAlt(_localctx, 2);
2773 				{
2774 				setState(737);
2775 				queryExpressionParens();
2776 				}
2777 				break;
2778 			case 3:
2779 				enterOuterAlt(_localctx, 3);
2780 				{
2781 				setState(738);
2782 				selectWithInto();
2783 				}
2784 				break;
2785 			}
2786 		}
2787 		catch (RecognitionException re) {
2788 			_localctx.exception = re;
2789 			_errHandler.reportError(this, re);
2790 			_errHandler.recover(this, re);
2791 		}
2792 		finally {
2793 			exitRule();
2794 		}
2795 		return _localctx;
2796 	}
2797 
2798 	public static class SelectWithIntoContext extends ParserRuleContext {
2799 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
2800 		public SelectWithIntoContext selectWithInto() {
2801 			return getRuleContext(SelectWithIntoContext.class,0);
2802 		}
2803 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
2804 		public QueryExpressionContext queryExpression() {
2805 			return getRuleContext(QueryExpressionContext.class,0);
2806 		}
2807 		public SelectIntoExpressionContext selectIntoExpression() {
2808 			return getRuleContext(SelectIntoExpressionContext.class,0);
2809 		}
2810 		public LockClauseListContext lockClauseList() {
2811 			return getRuleContext(LockClauseListContext.class,0);
2812 		}
2813 		public SelectWithIntoContext(ParserRuleContext parent, int invokingState) {
2814 			super(parent, invokingState);
2815 		}
2816 		@Override public int getRuleIndex() { return RULE_selectWithInto; }
2817 		@Override
2818 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
2819 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSelectWithInto(this);
2820 			else return visitor.visitChildren(this);
2821 		}
2822 	}
2823 
2824 	public final SelectWithIntoContext selectWithInto() throws RecognitionException {
2825 		SelectWithIntoContext _localctx = new SelectWithIntoContext(_ctx, getState());
2826 		enterRule(_localctx, 46, RULE_selectWithInto);
2827 		int _la;
2828 		try {
2829 			setState(754);
2830 			_errHandler.sync(this);
2831 			switch ( getInterpreter().adaptivePredict(_input,50,_ctx) ) {
2832 			case 1:
2833 				enterOuterAlt(_localctx, 1);
2834 				{
2835 				setState(741);
2836 				match(LP_);
2837 				setState(742);
2838 				selectWithInto();
2839 				setState(743);
2840 				match(RP_);
2841 				}
2842 				break;
2843 			case 2:
2844 				enterOuterAlt(_localctx, 2);
2845 				{
2846 				setState(745);
2847 				queryExpression();
2848 				setState(746);
2849 				selectIntoExpression();
2850 				setState(748);
2851 				_errHandler.sync(this);
2852 				_la = _input.LA(1);
2853 				if (_la==FOR || _la==LOCK) {
2854 					{
2855 					setState(747);
2856 					lockClauseList();
2857 					}
2858 				}
2859 
2860 				}
2861 				break;
2862 			case 3:
2863 				enterOuterAlt(_localctx, 3);
2864 				{
2865 				setState(750);
2866 				queryExpression();
2867 				setState(751);
2868 				lockClauseList();
2869 				setState(752);
2870 				selectIntoExpression();
2871 				}
2872 				break;
2873 			}
2874 		}
2875 		catch (RecognitionException re) {
2876 			_localctx.exception = re;
2877 			_errHandler.reportError(this, re);
2878 			_errHandler.recover(this, re);
2879 		}
2880 		finally {
2881 			exitRule();
2882 		}
2883 		return _localctx;
2884 	}
2885 
2886 	public static class QueryExpressionContext extends ParserRuleContext {
2887 		public QueryExpressionBodyContext queryExpressionBody() {
2888 			return getRuleContext(QueryExpressionBodyContext.class,0);
2889 		}
2890 		public QueryExpressionParensContext queryExpressionParens() {
2891 			return getRuleContext(QueryExpressionParensContext.class,0);
2892 		}
2893 		public WithClauseContext withClause() {
2894 			return getRuleContext(WithClauseContext.class,0);
2895 		}
2896 		public OrderByClauseContext orderByClause() {
2897 			return getRuleContext(OrderByClauseContext.class,0);
2898 		}
2899 		public LimitClauseContext limitClause() {
2900 			return getRuleContext(LimitClauseContext.class,0);
2901 		}
2902 		public QueryExpressionContext(ParserRuleContext parent, int invokingState) {
2903 			super(parent, invokingState);
2904 		}
2905 		@Override public int getRuleIndex() { return RULE_queryExpression; }
2906 		@Override
2907 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
2908 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitQueryExpression(this);
2909 			else return visitor.visitChildren(this);
2910 		}
2911 	}
2912 
2913 	public final QueryExpressionContext queryExpression() throws RecognitionException {
2914 		QueryExpressionContext _localctx = new QueryExpressionContext(_ctx, getState());
2915 		enterRule(_localctx, 48, RULE_queryExpression);
2916 		int _la;
2917 		try {
2918 			enterOuterAlt(_localctx, 1);
2919 			{
2920 			setState(757);
2921 			_errHandler.sync(this);
2922 			_la = _input.LA(1);
2923 			if (_la==WITH) {
2924 				{
2925 				setState(756);
2926 				withClause();
2927 				}
2928 			}
2929 
2930 			setState(761);
2931 			_errHandler.sync(this);
2932 			switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) {
2933 			case 1:
2934 				{
2935 				setState(759);
2936 				queryExpressionBody(0);
2937 				}
2938 				break;
2939 			case 2:
2940 				{
2941 				setState(760);
2942 				queryExpressionParens();
2943 				}
2944 				break;
2945 			}
2946 			setState(764);
2947 			_errHandler.sync(this);
2948 			_la = _input.LA(1);
2949 			if (_la==ORDER) {
2950 				{
2951 				setState(763);
2952 				orderByClause();
2953 				}
2954 			}
2955 
2956 			setState(767);
2957 			_errHandler.sync(this);
2958 			_la = _input.LA(1);
2959 			if (_la==LIMIT) {
2960 				{
2961 				setState(766);
2962 				limitClause();
2963 				}
2964 			}
2965 
2966 			}
2967 		}
2968 		catch (RecognitionException re) {
2969 			_localctx.exception = re;
2970 			_errHandler.reportError(this, re);
2971 			_errHandler.recover(this, re);
2972 		}
2973 		finally {
2974 			exitRule();
2975 		}
2976 		return _localctx;
2977 	}
2978 
2979 	public static class QueryExpressionBodyContext extends ParserRuleContext {
2980 		public QueryPrimaryContext queryPrimary() {
2981 			return getRuleContext(QueryPrimaryContext.class,0);
2982 		}
2983 		public QueryExpressionParensContext queryExpressionParens() {
2984 			return getRuleContext(QueryExpressionParensContext.class,0);
2985 		}
2986 		public CombineClauseContext combineClause() {
2987 			return getRuleContext(CombineClauseContext.class,0);
2988 		}
2989 		public QueryExpressionBodyContext queryExpressionBody() {
2990 			return getRuleContext(QueryExpressionBodyContext.class,0);
2991 		}
2992 		public QueryExpressionBodyContext(ParserRuleContext parent, int invokingState) {
2993 			super(parent, invokingState);
2994 		}
2995 		@Override public int getRuleIndex() { return RULE_queryExpressionBody; }
2996 		@Override
2997 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
2998 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitQueryExpressionBody(this);
2999 			else return visitor.visitChildren(this);
3000 		}
3001 	}
3002 
3003 	public final QueryExpressionBodyContext queryExpressionBody() throws RecognitionException {
3004 		return queryExpressionBody(0);
3005 	}
3006 
3007 	private QueryExpressionBodyContext queryExpressionBody(int _p) throws RecognitionException {
3008 		ParserRuleContext _parentctx = _ctx;
3009 		int _parentState = getState();
3010 		QueryExpressionBodyContext _localctx = new QueryExpressionBodyContext(_ctx, _parentState);
3011 		QueryExpressionBodyContext _prevctx = _localctx;
3012 		int _startState = 50;
3013 		enterRecursionRule(_localctx, 50, RULE_queryExpressionBody, _p);
3014 		try {
3015 			int _alt;
3016 			enterOuterAlt(_localctx, 1);
3017 			{
3018 			setState(774);
3019 			_errHandler.sync(this);
3020 			switch (_input.LA(1)) {
3021 			case SELECT:
3022 			case TABLE:
3023 			case VALUES:
3024 				{
3025 				setState(770);
3026 				queryPrimary();
3027 				}
3028 				break;
3029 			case LP_:
3030 				{
3031 				setState(771);
3032 				queryExpressionParens();
3033 				setState(772);
3034 				combineClause();
3035 				}
3036 				break;
3037 			default:
3038 				throw new NoViableAltException(this);
3039 			}
3040 			_ctx.stop = _input.LT(-1);
3041 			setState(780);
3042 			_errHandler.sync(this);
3043 			_alt = getInterpreter().adaptivePredict(_input,56,_ctx);
3044 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
3045 				if ( _alt==1 ) {
3046 					if ( _parseListeners!=null ) triggerExitRuleEvent();
3047 					_prevctx = _localctx;
3048 					{
3049 					{
3050 					_localctx = new QueryExpressionBodyContext(_parentctx, _parentState);
3051 					pushNewRecursionContext(_localctx, _startState, RULE_queryExpressionBody);
3052 					setState(776);
3053 					if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
3054 					setState(777);
3055 					combineClause();
3056 					}
3057 					} 
3058 				}
3059 				setState(782);
3060 				_errHandler.sync(this);
3061 				_alt = getInterpreter().adaptivePredict(_input,56,_ctx);
3062 			}
3063 			}
3064 		}
3065 		catch (RecognitionException re) {
3066 			_localctx.exception = re;
3067 			_errHandler.reportError(this, re);
3068 			_errHandler.recover(this, re);
3069 		}
3070 		finally {
3071 			unrollRecursionContexts(_parentctx);
3072 		}
3073 		return _localctx;
3074 	}
3075 
3076 	public static class CombineClauseContext extends ParserRuleContext {
3077 		public TerminalNode UNION() { return getToken(HiveStatementParser.UNION, 0); }
3078 		public QueryPrimaryContext queryPrimary() {
3079 			return getRuleContext(QueryPrimaryContext.class,0);
3080 		}
3081 		public QueryExpressionParensContext queryExpressionParens() {
3082 			return getRuleContext(QueryExpressionParensContext.class,0);
3083 		}
3084 		public CombineOptionContext combineOption() {
3085 			return getRuleContext(CombineOptionContext.class,0);
3086 		}
3087 		public TerminalNode EXCEPT() { return getToken(HiveStatementParser.EXCEPT, 0); }
3088 		public CombineClauseContext(ParserRuleContext parent, int invokingState) {
3089 			super(parent, invokingState);
3090 		}
3091 		@Override public int getRuleIndex() { return RULE_combineClause; }
3092 		@Override
3093 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3094 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCombineClause(this);
3095 			else return visitor.visitChildren(this);
3096 		}
3097 	}
3098 
3099 	public final CombineClauseContext combineClause() throws RecognitionException {
3100 		CombineClauseContext _localctx = new CombineClauseContext(_ctx, getState());
3101 		enterRule(_localctx, 52, RULE_combineClause);
3102 		int _la;
3103 		try {
3104 			setState(799);
3105 			_errHandler.sync(this);
3106 			switch (_input.LA(1)) {
3107 			case UNION:
3108 				enterOuterAlt(_localctx, 1);
3109 				{
3110 				setState(783);
3111 				match(UNION);
3112 				setState(785);
3113 				_errHandler.sync(this);
3114 				_la = _input.LA(1);
3115 				if (_la==ALL || _la==DISTINCT) {
3116 					{
3117 					setState(784);
3118 					combineOption();
3119 					}
3120 				}
3121 
3122 				setState(789);
3123 				_errHandler.sync(this);
3124 				switch (_input.LA(1)) {
3125 				case SELECT:
3126 				case TABLE:
3127 				case VALUES:
3128 					{
3129 					setState(787);
3130 					queryPrimary();
3131 					}
3132 					break;
3133 				case LP_:
3134 					{
3135 					setState(788);
3136 					queryExpressionParens();
3137 					}
3138 					break;
3139 				default:
3140 					throw new NoViableAltException(this);
3141 				}
3142 				}
3143 				break;
3144 			case EXCEPT:
3145 				enterOuterAlt(_localctx, 2);
3146 				{
3147 				setState(791);
3148 				match(EXCEPT);
3149 				setState(793);
3150 				_errHandler.sync(this);
3151 				_la = _input.LA(1);
3152 				if (_la==ALL || _la==DISTINCT) {
3153 					{
3154 					setState(792);
3155 					combineOption();
3156 					}
3157 				}
3158 
3159 				setState(797);
3160 				_errHandler.sync(this);
3161 				switch (_input.LA(1)) {
3162 				case SELECT:
3163 				case TABLE:
3164 				case VALUES:
3165 					{
3166 					setState(795);
3167 					queryPrimary();
3168 					}
3169 					break;
3170 				case LP_:
3171 					{
3172 					setState(796);
3173 					queryExpressionParens();
3174 					}
3175 					break;
3176 				default:
3177 					throw new NoViableAltException(this);
3178 				}
3179 				}
3180 				break;
3181 			default:
3182 				throw new NoViableAltException(this);
3183 			}
3184 		}
3185 		catch (RecognitionException re) {
3186 			_localctx.exception = re;
3187 			_errHandler.reportError(this, re);
3188 			_errHandler.recover(this, re);
3189 		}
3190 		finally {
3191 			exitRule();
3192 		}
3193 		return _localctx;
3194 	}
3195 
3196 	public static class QueryExpressionParensContext extends ParserRuleContext {
3197 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
3198 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
3199 		public QueryExpressionParensContext queryExpressionParens() {
3200 			return getRuleContext(QueryExpressionParensContext.class,0);
3201 		}
3202 		public QueryExpressionContext queryExpression() {
3203 			return getRuleContext(QueryExpressionContext.class,0);
3204 		}
3205 		public LockClauseListContext lockClauseList() {
3206 			return getRuleContext(LockClauseListContext.class,0);
3207 		}
3208 		public QueryExpressionParensContext(ParserRuleContext parent, int invokingState) {
3209 			super(parent, invokingState);
3210 		}
3211 		@Override public int getRuleIndex() { return RULE_queryExpressionParens; }
3212 		@Override
3213 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3214 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitQueryExpressionParens(this);
3215 			else return visitor.visitChildren(this);
3216 		}
3217 	}
3218 
3219 	public final QueryExpressionParensContext queryExpressionParens() throws RecognitionException {
3220 		QueryExpressionParensContext _localctx = new QueryExpressionParensContext(_ctx, getState());
3221 		enterRule(_localctx, 54, RULE_queryExpressionParens);
3222 		int _la;
3223 		try {
3224 			enterOuterAlt(_localctx, 1);
3225 			{
3226 			setState(801);
3227 			match(LP_);
3228 			setState(807);
3229 			_errHandler.sync(this);
3230 			switch ( getInterpreter().adaptivePredict(_input,63,_ctx) ) {
3231 			case 1:
3232 				{
3233 				setState(802);
3234 				queryExpressionParens();
3235 				}
3236 				break;
3237 			case 2:
3238 				{
3239 				setState(803);
3240 				queryExpression();
3241 				setState(805);
3242 				_errHandler.sync(this);
3243 				_la = _input.LA(1);
3244 				if (_la==FOR || _la==LOCK) {
3245 					{
3246 					setState(804);
3247 					lockClauseList();
3248 					}
3249 				}
3250 
3251 				}
3252 				break;
3253 			}
3254 			setState(809);
3255 			match(RP_);
3256 			}
3257 		}
3258 		catch (RecognitionException re) {
3259 			_localctx.exception = re;
3260 			_errHandler.reportError(this, re);
3261 			_errHandler.recover(this, re);
3262 		}
3263 		finally {
3264 			exitRule();
3265 		}
3266 		return _localctx;
3267 	}
3268 
3269 	public static class QueryPrimaryContext extends ParserRuleContext {
3270 		public QuerySpecificationContext querySpecification() {
3271 			return getRuleContext(QuerySpecificationContext.class,0);
3272 		}
3273 		public TableValueConstructorContext tableValueConstructor() {
3274 			return getRuleContext(TableValueConstructorContext.class,0);
3275 		}
3276 		public TableStatementContext tableStatement() {
3277 			return getRuleContext(TableStatementContext.class,0);
3278 		}
3279 		public QueryPrimaryContext(ParserRuleContext parent, int invokingState) {
3280 			super(parent, invokingState);
3281 		}
3282 		@Override public int getRuleIndex() { return RULE_queryPrimary; }
3283 		@Override
3284 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3285 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitQueryPrimary(this);
3286 			else return visitor.visitChildren(this);
3287 		}
3288 	}
3289 
3290 	public final QueryPrimaryContext queryPrimary() throws RecognitionException {
3291 		QueryPrimaryContext _localctx = new QueryPrimaryContext(_ctx, getState());
3292 		enterRule(_localctx, 56, RULE_queryPrimary);
3293 		try {
3294 			setState(814);
3295 			_errHandler.sync(this);
3296 			switch (_input.LA(1)) {
3297 			case SELECT:
3298 				enterOuterAlt(_localctx, 1);
3299 				{
3300 				setState(811);
3301 				querySpecification();
3302 				}
3303 				break;
3304 			case VALUES:
3305 				enterOuterAlt(_localctx, 2);
3306 				{
3307 				setState(812);
3308 				tableValueConstructor();
3309 				}
3310 				break;
3311 			case TABLE:
3312 				enterOuterAlt(_localctx, 3);
3313 				{
3314 				setState(813);
3315 				tableStatement();
3316 				}
3317 				break;
3318 			default:
3319 				throw new NoViableAltException(this);
3320 			}
3321 		}
3322 		catch (RecognitionException re) {
3323 			_localctx.exception = re;
3324 			_errHandler.reportError(this, re);
3325 			_errHandler.recover(this, re);
3326 		}
3327 		finally {
3328 			exitRule();
3329 		}
3330 		return _localctx;
3331 	}
3332 
3333 	public static class QuerySpecificationContext extends ParserRuleContext {
3334 		public TerminalNode SELECT() { return getToken(HiveStatementParser.SELECT, 0); }
3335 		public ProjectionsContext projections() {
3336 			return getRuleContext(ProjectionsContext.class,0);
3337 		}
3338 		public List<SelectSpecificationContext> selectSpecification() {
3339 			return getRuleContexts(SelectSpecificationContext.class);
3340 		}
3341 		public SelectSpecificationContext selectSpecification(int i) {
3342 			return getRuleContext(SelectSpecificationContext.class,i);
3343 		}
3344 		public SelectIntoExpressionContext selectIntoExpression() {
3345 			return getRuleContext(SelectIntoExpressionContext.class,0);
3346 		}
3347 		public FromClauseContext fromClause() {
3348 			return getRuleContext(FromClauseContext.class,0);
3349 		}
3350 		public WhereClauseContext whereClause() {
3351 			return getRuleContext(WhereClauseContext.class,0);
3352 		}
3353 		public GroupByClauseContext groupByClause() {
3354 			return getRuleContext(GroupByClauseContext.class,0);
3355 		}
3356 		public HavingClauseContext havingClause() {
3357 			return getRuleContext(HavingClauseContext.class,0);
3358 		}
3359 		public WindowClauseContext windowClause() {
3360 			return getRuleContext(WindowClauseContext.class,0);
3361 		}
3362 		public QuerySpecificationContext(ParserRuleContext parent, int invokingState) {
3363 			super(parent, invokingState);
3364 		}
3365 		@Override public int getRuleIndex() { return RULE_querySpecification; }
3366 		@Override
3367 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3368 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitQuerySpecification(this);
3369 			else return visitor.visitChildren(this);
3370 		}
3371 	}
3372 
3373 	public final QuerySpecificationContext querySpecification() throws RecognitionException {
3374 		QuerySpecificationContext _localctx = new QuerySpecificationContext(_ctx, getState());
3375 		enterRule(_localctx, 58, RULE_querySpecification);
3376 		try {
3377 			int _alt;
3378 			enterOuterAlt(_localctx, 1);
3379 			{
3380 			setState(816);
3381 			match(SELECT);
3382 			setState(820);
3383 			_errHandler.sync(this);
3384 			_alt = getInterpreter().adaptivePredict(_input,65,_ctx);
3385 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
3386 				if ( _alt==1 ) {
3387 					{
3388 					{
3389 					setState(817);
3390 					selectSpecification();
3391 					}
3392 					} 
3393 				}
3394 				setState(822);
3395 				_errHandler.sync(this);
3396 				_alt = getInterpreter().adaptivePredict(_input,65,_ctx);
3397 			}
3398 			setState(823);
3399 			projections();
3400 			setState(825);
3401 			_errHandler.sync(this);
3402 			switch ( getInterpreter().adaptivePredict(_input,66,_ctx) ) {
3403 			case 1:
3404 				{
3405 				setState(824);
3406 				selectIntoExpression();
3407 				}
3408 				break;
3409 			}
3410 			setState(828);
3411 			_errHandler.sync(this);
3412 			switch ( getInterpreter().adaptivePredict(_input,67,_ctx) ) {
3413 			case 1:
3414 				{
3415 				setState(827);
3416 				fromClause();
3417 				}
3418 				break;
3419 			}
3420 			setState(831);
3421 			_errHandler.sync(this);
3422 			switch ( getInterpreter().adaptivePredict(_input,68,_ctx) ) {
3423 			case 1:
3424 				{
3425 				setState(830);
3426 				whereClause();
3427 				}
3428 				break;
3429 			}
3430 			setState(834);
3431 			_errHandler.sync(this);
3432 			switch ( getInterpreter().adaptivePredict(_input,69,_ctx) ) {
3433 			case 1:
3434 				{
3435 				setState(833);
3436 				groupByClause();
3437 				}
3438 				break;
3439 			}
3440 			setState(837);
3441 			_errHandler.sync(this);
3442 			switch ( getInterpreter().adaptivePredict(_input,70,_ctx) ) {
3443 			case 1:
3444 				{
3445 				setState(836);
3446 				havingClause();
3447 				}
3448 				break;
3449 			}
3450 			setState(840);
3451 			_errHandler.sync(this);
3452 			switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) {
3453 			case 1:
3454 				{
3455 				setState(839);
3456 				windowClause();
3457 				}
3458 				break;
3459 			}
3460 			}
3461 		}
3462 		catch (RecognitionException re) {
3463 			_localctx.exception = re;
3464 			_errHandler.reportError(this, re);
3465 			_errHandler.recover(this, re);
3466 		}
3467 		finally {
3468 			exitRule();
3469 		}
3470 		return _localctx;
3471 	}
3472 
3473 	public static class TableStatementContext extends ParserRuleContext {
3474 		public TerminalNode TABLE() { return getToken(HiveStatementParser.TABLE, 0); }
3475 		public TableNameContext tableName() {
3476 			return getRuleContext(TableNameContext.class,0);
3477 		}
3478 		public TableStatementContext(ParserRuleContext parent, int invokingState) {
3479 			super(parent, invokingState);
3480 		}
3481 		@Override public int getRuleIndex() { return RULE_tableStatement; }
3482 		@Override
3483 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3484 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableStatement(this);
3485 			else return visitor.visitChildren(this);
3486 		}
3487 	}
3488 
3489 	public final TableStatementContext tableStatement() throws RecognitionException {
3490 		TableStatementContext _localctx = new TableStatementContext(_ctx, getState());
3491 		enterRule(_localctx, 60, RULE_tableStatement);
3492 		try {
3493 			enterOuterAlt(_localctx, 1);
3494 			{
3495 			setState(842);
3496 			match(TABLE);
3497 			setState(843);
3498 			tableName();
3499 			}
3500 		}
3501 		catch (RecognitionException re) {
3502 			_localctx.exception = re;
3503 			_errHandler.reportError(this, re);
3504 			_errHandler.recover(this, re);
3505 		}
3506 		finally {
3507 			exitRule();
3508 		}
3509 		return _localctx;
3510 	}
3511 
3512 	public static class TableValueConstructorContext extends ParserRuleContext {
3513 		public TerminalNode VALUES() { return getToken(HiveStatementParser.VALUES, 0); }
3514 		public RowConstructorListContext rowConstructorList() {
3515 			return getRuleContext(RowConstructorListContext.class,0);
3516 		}
3517 		public TableValueConstructorContext(ParserRuleContext parent, int invokingState) {
3518 			super(parent, invokingState);
3519 		}
3520 		@Override public int getRuleIndex() { return RULE_tableValueConstructor; }
3521 		@Override
3522 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3523 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableValueConstructor(this);
3524 			else return visitor.visitChildren(this);
3525 		}
3526 	}
3527 
3528 	public final TableValueConstructorContext tableValueConstructor() throws RecognitionException {
3529 		TableValueConstructorContext _localctx = new TableValueConstructorContext(_ctx, getState());
3530 		enterRule(_localctx, 62, RULE_tableValueConstructor);
3531 		try {
3532 			enterOuterAlt(_localctx, 1);
3533 			{
3534 			setState(845);
3535 			match(VALUES);
3536 			setState(846);
3537 			rowConstructorList();
3538 			}
3539 		}
3540 		catch (RecognitionException re) {
3541 			_localctx.exception = re;
3542 			_errHandler.reportError(this, re);
3543 			_errHandler.recover(this, re);
3544 		}
3545 		finally {
3546 			exitRule();
3547 		}
3548 		return _localctx;
3549 	}
3550 
3551 	public static class RowConstructorListContext extends ParserRuleContext {
3552 		public List<TerminalNode> ROW() { return getTokens(HiveStatementParser.ROW); }
3553 		public TerminalNode ROW(int i) {
3554 			return getToken(HiveStatementParser.ROW, i);
3555 		}
3556 		public List<AssignmentValuesContext> assignmentValues() {
3557 			return getRuleContexts(AssignmentValuesContext.class);
3558 		}
3559 		public AssignmentValuesContext assignmentValues(int i) {
3560 			return getRuleContext(AssignmentValuesContext.class,i);
3561 		}
3562 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
3563 		public TerminalNode COMMA_(int i) {
3564 			return getToken(HiveStatementParser.COMMA_, i);
3565 		}
3566 		public RowConstructorListContext(ParserRuleContext parent, int invokingState) {
3567 			super(parent, invokingState);
3568 		}
3569 		@Override public int getRuleIndex() { return RULE_rowConstructorList; }
3570 		@Override
3571 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3572 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRowConstructorList(this);
3573 			else return visitor.visitChildren(this);
3574 		}
3575 	}
3576 
3577 	public final RowConstructorListContext rowConstructorList() throws RecognitionException {
3578 		RowConstructorListContext _localctx = new RowConstructorListContext(_ctx, getState());
3579 		enterRule(_localctx, 64, RULE_rowConstructorList);
3580 		try {
3581 			int _alt;
3582 			enterOuterAlt(_localctx, 1);
3583 			{
3584 			setState(848);
3585 			match(ROW);
3586 			setState(849);
3587 			assignmentValues();
3588 			setState(855);
3589 			_errHandler.sync(this);
3590 			_alt = getInterpreter().adaptivePredict(_input,72,_ctx);
3591 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
3592 				if ( _alt==1 ) {
3593 					{
3594 					{
3595 					setState(850);
3596 					match(COMMA_);
3597 					setState(851);
3598 					match(ROW);
3599 					setState(852);
3600 					assignmentValues();
3601 					}
3602 					} 
3603 				}
3604 				setState(857);
3605 				_errHandler.sync(this);
3606 				_alt = getInterpreter().adaptivePredict(_input,72,_ctx);
3607 			}
3608 			}
3609 		}
3610 		catch (RecognitionException re) {
3611 			_localctx.exception = re;
3612 			_errHandler.reportError(this, re);
3613 			_errHandler.recover(this, re);
3614 		}
3615 		finally {
3616 			exitRule();
3617 		}
3618 		return _localctx;
3619 	}
3620 
3621 	public static class WithClauseContext extends ParserRuleContext {
3622 		public TerminalNode WITH() { return getToken(HiveStatementParser.WITH, 0); }
3623 		public List<CteClauseContext> cteClause() {
3624 			return getRuleContexts(CteClauseContext.class);
3625 		}
3626 		public CteClauseContext cteClause(int i) {
3627 			return getRuleContext(CteClauseContext.class,i);
3628 		}
3629 		public TerminalNode RECURSIVE() { return getToken(HiveStatementParser.RECURSIVE, 0); }
3630 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
3631 		public TerminalNode COMMA_(int i) {
3632 			return getToken(HiveStatementParser.COMMA_, i);
3633 		}
3634 		public WithClauseContext(ParserRuleContext parent, int invokingState) {
3635 			super(parent, invokingState);
3636 		}
3637 		@Override public int getRuleIndex() { return RULE_withClause; }
3638 		@Override
3639 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3640 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWithClause(this);
3641 			else return visitor.visitChildren(this);
3642 		}
3643 	}
3644 
3645 	public final WithClauseContext withClause() throws RecognitionException {
3646 		WithClauseContext _localctx = new WithClauseContext(_ctx, getState());
3647 		enterRule(_localctx, 66, RULE_withClause);
3648 		int _la;
3649 		try {
3650 			enterOuterAlt(_localctx, 1);
3651 			{
3652 			setState(858);
3653 			match(WITH);
3654 			setState(860);
3655 			_errHandler.sync(this);
3656 			_la = _input.LA(1);
3657 			if (_la==RECURSIVE) {
3658 				{
3659 				setState(859);
3660 				match(RECURSIVE);
3661 				}
3662 			}
3663 
3664 			setState(862);
3665 			cteClause();
3666 			setState(867);
3667 			_errHandler.sync(this);
3668 			_la = _input.LA(1);
3669 			while (_la==COMMA_) {
3670 				{
3671 				{
3672 				setState(863);
3673 				match(COMMA_);
3674 				setState(864);
3675 				cteClause();
3676 				}
3677 				}
3678 				setState(869);
3679 				_errHandler.sync(this);
3680 				_la = _input.LA(1);
3681 			}
3682 			}
3683 		}
3684 		catch (RecognitionException re) {
3685 			_localctx.exception = re;
3686 			_errHandler.reportError(this, re);
3687 			_errHandler.recover(this, re);
3688 		}
3689 		finally {
3690 			exitRule();
3691 		}
3692 		return _localctx;
3693 	}
3694 
3695 	public static class CteClauseContext extends ParserRuleContext {
3696 		public IdentifierContext identifier() {
3697 			return getRuleContext(IdentifierContext.class,0);
3698 		}
3699 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
3700 		public SubqueryContext subquery() {
3701 			return getRuleContext(SubqueryContext.class,0);
3702 		}
3703 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
3704 		public ColumnNamesContext columnNames() {
3705 			return getRuleContext(ColumnNamesContext.class,0);
3706 		}
3707 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
3708 		public CteClauseContext(ParserRuleContext parent, int invokingState) {
3709 			super(parent, invokingState);
3710 		}
3711 		@Override public int getRuleIndex() { return RULE_cteClause; }
3712 		@Override
3713 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3714 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCteClause(this);
3715 			else return visitor.visitChildren(this);
3716 		}
3717 	}
3718 
3719 	public final CteClauseContext cteClause() throws RecognitionException {
3720 		CteClauseContext _localctx = new CteClauseContext(_ctx, getState());
3721 		enterRule(_localctx, 68, RULE_cteClause);
3722 		int _la;
3723 		try {
3724 			enterOuterAlt(_localctx, 1);
3725 			{
3726 			setState(870);
3727 			identifier();
3728 			setState(875);
3729 			_errHandler.sync(this);
3730 			_la = _input.LA(1);
3731 			if (_la==LP_) {
3732 				{
3733 				setState(871);
3734 				match(LP_);
3735 				setState(872);
3736 				columnNames();
3737 				setState(873);
3738 				match(RP_);
3739 				}
3740 			}
3741 
3742 			setState(877);
3743 			match(AS);
3744 			setState(878);
3745 			subquery();
3746 			}
3747 		}
3748 		catch (RecognitionException re) {
3749 			_localctx.exception = re;
3750 			_errHandler.reportError(this, re);
3751 			_errHandler.recover(this, re);
3752 		}
3753 		finally {
3754 			exitRule();
3755 		}
3756 		return _localctx;
3757 	}
3758 
3759 	public static class SelectSpecificationContext extends ParserRuleContext {
3760 		public DuplicateSpecificationContext duplicateSpecification() {
3761 			return getRuleContext(DuplicateSpecificationContext.class,0);
3762 		}
3763 		public TerminalNode HIGH_PRIORITY() { return getToken(HiveStatementParser.HIGH_PRIORITY, 0); }
3764 		public TerminalNode STRAIGHT_JOIN() { return getToken(HiveStatementParser.STRAIGHT_JOIN, 0); }
3765 		public TerminalNode SQL_SMALL_RESULT() { return getToken(HiveStatementParser.SQL_SMALL_RESULT, 0); }
3766 		public TerminalNode SQL_BIG_RESULT() { return getToken(HiveStatementParser.SQL_BIG_RESULT, 0); }
3767 		public TerminalNode SQL_BUFFER_RESULT() { return getToken(HiveStatementParser.SQL_BUFFER_RESULT, 0); }
3768 		public TerminalNode SQL_NO_CACHE() { return getToken(HiveStatementParser.SQL_NO_CACHE, 0); }
3769 		public TerminalNode SQL_CALC_FOUND_ROWS() { return getToken(HiveStatementParser.SQL_CALC_FOUND_ROWS, 0); }
3770 		public SelectSpecificationContext(ParserRuleContext parent, int invokingState) {
3771 			super(parent, invokingState);
3772 		}
3773 		@Override public int getRuleIndex() { return RULE_selectSpecification; }
3774 		@Override
3775 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3776 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSelectSpecification(this);
3777 			else return visitor.visitChildren(this);
3778 		}
3779 	}
3780 
3781 	public final SelectSpecificationContext selectSpecification() throws RecognitionException {
3782 		SelectSpecificationContext _localctx = new SelectSpecificationContext(_ctx, getState());
3783 		enterRule(_localctx, 70, RULE_selectSpecification);
3784 		try {
3785 			setState(888);
3786 			_errHandler.sync(this);
3787 			switch (_input.LA(1)) {
3788 			case ALL:
3789 			case DISTINCT:
3790 			case DISTINCTROW:
3791 				enterOuterAlt(_localctx, 1);
3792 				{
3793 				setState(880);
3794 				duplicateSpecification();
3795 				}
3796 				break;
3797 			case HIGH_PRIORITY:
3798 				enterOuterAlt(_localctx, 2);
3799 				{
3800 				setState(881);
3801 				match(HIGH_PRIORITY);
3802 				}
3803 				break;
3804 			case STRAIGHT_JOIN:
3805 				enterOuterAlt(_localctx, 3);
3806 				{
3807 				setState(882);
3808 				match(STRAIGHT_JOIN);
3809 				}
3810 				break;
3811 			case SQL_SMALL_RESULT:
3812 				enterOuterAlt(_localctx, 4);
3813 				{
3814 				setState(883);
3815 				match(SQL_SMALL_RESULT);
3816 				}
3817 				break;
3818 			case SQL_BIG_RESULT:
3819 				enterOuterAlt(_localctx, 5);
3820 				{
3821 				setState(884);
3822 				match(SQL_BIG_RESULT);
3823 				}
3824 				break;
3825 			case SQL_BUFFER_RESULT:
3826 				enterOuterAlt(_localctx, 6);
3827 				{
3828 				setState(885);
3829 				match(SQL_BUFFER_RESULT);
3830 				}
3831 				break;
3832 			case SQL_NO_CACHE:
3833 				enterOuterAlt(_localctx, 7);
3834 				{
3835 				setState(886);
3836 				match(SQL_NO_CACHE);
3837 				}
3838 				break;
3839 			case SQL_CALC_FOUND_ROWS:
3840 				enterOuterAlt(_localctx, 8);
3841 				{
3842 				setState(887);
3843 				match(SQL_CALC_FOUND_ROWS);
3844 				}
3845 				break;
3846 			default:
3847 				throw new NoViableAltException(this);
3848 			}
3849 		}
3850 		catch (RecognitionException re) {
3851 			_localctx.exception = re;
3852 			_errHandler.reportError(this, re);
3853 			_errHandler.recover(this, re);
3854 		}
3855 		finally {
3856 			exitRule();
3857 		}
3858 		return _localctx;
3859 	}
3860 
3861 	public static class DuplicateSpecificationContext extends ParserRuleContext {
3862 		public TerminalNode ALL() { return getToken(HiveStatementParser.ALL, 0); }
3863 		public TerminalNode DISTINCT() { return getToken(HiveStatementParser.DISTINCT, 0); }
3864 		public TerminalNode DISTINCTROW() { return getToken(HiveStatementParser.DISTINCTROW, 0); }
3865 		public DuplicateSpecificationContext(ParserRuleContext parent, int invokingState) {
3866 			super(parent, invokingState);
3867 		}
3868 		@Override public int getRuleIndex() { return RULE_duplicateSpecification; }
3869 		@Override
3870 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3871 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDuplicateSpecification(this);
3872 			else return visitor.visitChildren(this);
3873 		}
3874 	}
3875 
3876 	public final DuplicateSpecificationContext duplicateSpecification() throws RecognitionException {
3877 		DuplicateSpecificationContext _localctx = new DuplicateSpecificationContext(_ctx, getState());
3878 		enterRule(_localctx, 72, RULE_duplicateSpecification);
3879 		int _la;
3880 		try {
3881 			enterOuterAlt(_localctx, 1);
3882 			{
3883 			setState(890);
3884 			_la = _input.LA(1);
3885 			if ( !(_la==ALL || _la==DISTINCT || _la==DISTINCTROW) ) {
3886 			_errHandler.recoverInline(this);
3887 			}
3888 			else {
3889 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
3890 				_errHandler.reportMatch(this);
3891 				consume();
3892 			}
3893 			}
3894 		}
3895 		catch (RecognitionException re) {
3896 			_localctx.exception = re;
3897 			_errHandler.reportError(this, re);
3898 			_errHandler.recover(this, re);
3899 		}
3900 		finally {
3901 			exitRule();
3902 		}
3903 		return _localctx;
3904 	}
3905 
3906 	public static class ProjectionsContext extends ParserRuleContext {
3907 		public UnqualifiedShorthandContext unqualifiedShorthand() {
3908 			return getRuleContext(UnqualifiedShorthandContext.class,0);
3909 		}
3910 		public List<ProjectionContext> projection() {
3911 			return getRuleContexts(ProjectionContext.class);
3912 		}
3913 		public ProjectionContext projection(int i) {
3914 			return getRuleContext(ProjectionContext.class,i);
3915 		}
3916 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
3917 		public TerminalNode COMMA_(int i) {
3918 			return getToken(HiveStatementParser.COMMA_, i);
3919 		}
3920 		public ProjectionsContext(ParserRuleContext parent, int invokingState) {
3921 			super(parent, invokingState);
3922 		}
3923 		@Override public int getRuleIndex() { return RULE_projections; }
3924 		@Override
3925 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
3926 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitProjections(this);
3927 			else return visitor.visitChildren(this);
3928 		}
3929 	}
3930 
3931 	public final ProjectionsContext projections() throws RecognitionException {
3932 		ProjectionsContext _localctx = new ProjectionsContext(_ctx, getState());
3933 		enterRule(_localctx, 74, RULE_projections);
3934 		try {
3935 			int _alt;
3936 			enterOuterAlt(_localctx, 1);
3937 			{
3938 			setState(894);
3939 			_errHandler.sync(this);
3940 			switch (_input.LA(1)) {
3941 			case ASTERISK_:
3942 				{
3943 				setState(892);
3944 				unqualifiedShorthand();
3945 				}
3946 				break;
3947 			case NOT_:
3948 			case TILDE_:
3949 			case PLUS_:
3950 			case MINUS_:
3951 			case LP_:
3952 			case LBE_:
3953 			case QUESTION_:
3954 			case AT_:
3955 			case MAX:
3956 			case MIN:
3957 			case SUM:
3958 			case COUNT:
3959 			case GROUP_CONCAT:
3960 			case CAST:
3961 			case POSITION:
3962 			case SUBSTRING:
3963 			case SUBSTR:
3964 			case EXTRACT:
3965 			case TRIM:
3966 			case LAST_DAY:
3967 			case TRADITIONAL:
3968 			case TREE:
3969 			case MYSQL_MAIN:
3970 			case MYSQL_ADMIN:
3971 			case INSTANT:
3972 			case INPLACE:
3973 			case COPY:
3974 			case UL_BINARY:
3975 			case AUTOCOMMIT:
3976 			case INNODB:
3977 			case REDO_LOG:
3978 			case ACCOUNT:
3979 			case ACTION:
3980 			case ACTIVE:
3981 			case ADMIN:
3982 			case AFTER:
3983 			case AGAINST:
3984 			case AGGREGATE:
3985 			case ALGORITHM:
3986 			case ALWAYS:
3987 			case ANY:
3988 			case ARRAY:
3989 			case ASCII:
3990 			case AT:
3991 			case ATTRIBUTE:
3992 			case AUTOEXTEND_SIZE:
3993 			case AUTO_INCREMENT:
3994 			case AVG:
3995 			case BIT_XOR:
3996 			case AVG_ROW_LENGTH:
3997 			case BACKUP:
3998 			case BEGIN:
3999 			case BINARY:
4000 			case BINLOG:
4001 			case BIT:
4002 			case BLOCK:
4003 			case BOOL:
4004 			case BOOLEAN:
4005 			case BTREE:
4006 			case BUCKETS:
4007 			case BYTE:
4008 			case CACHE:
4009 			case CASCADED:
4010 			case CASE:
4011 			case CATALOG_NAME:
4012 			case CHAIN:
4013 			case CHANGED:
4014 			case CHANNEL:
4015 			case CHAR:
4016 			case CHARSET:
4017 			case CHECKSUM:
4018 			case CIPHER:
4019 			case CLASS_ORIGIN:
4020 			case CLIENT:
4021 			case CLONE:
4022 			case CLOSE:
4023 			case COALESCE:
4024 			case CODE:
4025 			case COLLATION:
4026 			case COLUMNS:
4027 			case COLUMN_FORMAT:
4028 			case COLUMN_NAME:
4029 			case COMMENT:
4030 			case COMMIT:
4031 			case COMMITTED:
4032 			case COMPACT:
4033 			case COMPLETION:
4034 			case COMPONENT:
4035 			case COMPRESSED:
4036 			case COMPRESSION:
4037 			case CONCURRENT:
4038 			case CONNECTION:
4039 			case CONSISTENT:
4040 			case CONSTRAINT_CATALOG:
4041 			case CONSTRAINT_NAME:
4042 			case CONSTRAINT_SCHEMA:
4043 			case CONTAINS:
4044 			case CONTEXT:
4045 			case CONVERT:
4046 			case CPU:
4047 			case CREATE:
4048 			case CUME_DIST:
4049 			case CURRENT:
4050 			case CURRENT_DATE:
4051 			case CURRENT_TIME:
4052 			case CURRENT_TIMESTAMP:
4053 			case CURRENT_USER:
4054 			case CURSOR_NAME:
4055 			case DATA:
4056 			case DATABASE:
4057 			case DATAFILE:
4058 			case DATE:
4059 			case DATETIME:
4060 			case DAY:
4061 			case DAY_MINUTE:
4062 			case DEALLOCATE:
4063 			case DEFAULT_AUTH:
4064 			case DEFINER:
4065 			case DEFINITION:
4066 			case DELAY_KEY_WRITE:
4067 			case DENSE_RANK:
4068 			case DESCRIPTION:
4069 			case DIAGNOSTICS:
4070 			case DIRECTORY:
4071 			case DISABLE:
4072 			case DISCARD:
4073 			case DISK:
4074 			case DO:
4075 			case DUMPFILE:
4076 			case DUPLICATE:
4077 			case DYNAMIC:
4078 			case ENABLE:
4079 			case ENCRYPTION:
4080 			case END:
4081 			case ENDS:
4082 			case ENFORCED:
4083 			case ENGINE:
4084 			case ENGINES:
4085 			case ENGINE_ATTRIBUTE:
4086 			case ENUM:
4087 			case ERROR:
4088 			case ERRORS:
4089 			case ESCAPE:
4090 			case EVENT:
4091 			case EVENTS:
4092 			case EVERY:
4093 			case EXCHANGE:
4094 			case EXCLUDE:
4095 			case EXECUTE:
4096 			case EXISTS:
4097 			case EXPANSION:
4098 			case EXPIRE:
4099 			case EXPORT:
4100 			case EXTENDED:
4101 			case EXTENT_SIZE:
4102 			case FAILED_LOGIN_ATTEMPTS:
4103 			case FALSE:
4104 			case FAST:
4105 			case FAULTS:
4106 			case FILE:
4107 			case FILE_BLOCK_SIZE:
4108 			case FILTER:
4109 			case FIRST:
4110 			case FIRST_VALUE:
4111 			case FIXED:
4112 			case FLUSH:
4113 			case FOLLOWING:
4114 			case FOLLOWS:
4115 			case FORMAT:
4116 			case FOUND:
4117 			case FULL:
4118 			case GENERAL:
4119 			case GEOMETRY:
4120 			case GEOMETRYCOLLECTION:
4121 			case GET_FORMAT:
4122 			case GET_MASTER_PUBLIC_KEY:
4123 			case GLOBAL:
4124 			case GRANTS:
4125 			case GROUP_REPLICATION:
4126 			case HANDLER:
4127 			case HASH:
4128 			case HELP:
4129 			case HISTOGRAM:
4130 			case HISTORY:
4131 			case HOST:
4132 			case HOSTS:
4133 			case HOUR:
4134 			case IDENTIFIED:
4135 			case IF:
4136 			case IGNORE_SERVER_IDS:
4137 			case IMPORT:
4138 			case INACTIVE:
4139 			case INDEXES:
4140 			case INITIAL_SIZE:
4141 			case INSERT:
4142 			case INSERT_METHOD:
4143 			case INSTALL:
4144 			case INSTANCE:
4145 			case INTERVAL:
4146 			case INVISIBLE:
4147 			case INVOKER:
4148 			case IO:
4149 			case IPC:
4150 			case ISOLATION:
4151 			case ISSUER:
4152 			case JSON:
4153 			case JSON_TABLE:
4154 			case JSON_VALUE:
4155 			case KEY:
4156 			case KEY_BLOCK_SIZE:
4157 			case LAG:
4158 			case LANGUAGE:
4159 			case LAST:
4160 			case LAST_VALUE:
4161 			case LEAD:
4162 			case LEAVES:
4163 			case LEFT:
4164 			case LESS:
4165 			case LEVEL:
4166 			case LINESTRING:
4167 			case LIST:
4168 			case LOCAL:
4169 			case LOCALTIME:
4170 			case LOCALTIMESTAMP:
4171 			case LOCKED:
4172 			case LOCKS:
4173 			case LOGFILE:
4174 			case LOGS:
4175 			case MASTER:
4176 			case MASTER_AUTO_POSITION:
4177 			case MASTER_COMPRESSION_ALGORITHM:
4178 			case MASTER_CONNECT_RETRY:
4179 			case MASTER_DELAY:
4180 			case MASTER_HEARTBEAT_PERIOD:
4181 			case MASTER_HOST:
4182 			case MASTER_LOG_FILE:
4183 			case MASTER_LOG_POS:
4184 			case MASTER_PASSWORD:
4185 			case MASTER_PORT:
4186 			case MASTER_PUBLIC_KEY_PATH:
4187 			case MASTER_RETRY_COUNT:
4188 			case MASTER_SERVER_ID:
4189 			case MASTER_SSL:
4190 			case MASTER_SSL_CA:
4191 			case MASTER_SSL_CAPATH:
4192 			case MASTER_SSL_CERT:
4193 			case MASTER_SSL_CIPHER:
4194 			case MASTER_SSL_CRL:
4195 			case MASTER_SSL_CRLPATH:
4196 			case MASTER_SSL_KEY:
4197 			case MASTER_TLS_CIPHERSUITES:
4198 			case MASTER_TLS_VERSION:
4199 			case MASTER_USER:
4200 			case MASTER_ZSTD_COMPRESSION_LEVEL:
4201 			case MATCH:
4202 			case MAXVALUE:
4203 			case MAX_CONNECTIONS_PER_HOUR:
4204 			case MAX_QUERIES_PER_HOUR:
4205 			case MAX_ROWS:
4206 			case MAX_SIZE:
4207 			case MAX_UPDATES_PER_HOUR:
4208 			case MAX_USER_CONNECTIONS:
4209 			case MEDIUM:
4210 			case MEMBER:
4211 			case MEMORY:
4212 			case MERGE:
4213 			case MESSAGE_TEXT:
4214 			case MICROSECOND:
4215 			case MIGRATE:
4216 			case MINUTE:
4217 			case MIN_ROWS:
4218 			case MOD:
4219 			case MODE:
4220 			case MODIFY:
4221 			case MONTH:
4222 			case MULTILINESTRING:
4223 			case MULTIPOINT:
4224 			case MULTIPOLYGON:
4225 			case MUTEX:
4226 			case MYSQL_ERRNO:
4227 			case NAME:
4228 			case NAMES:
4229 			case NATIONAL:
4230 			case NCHAR:
4231 			case NDBCLUSTER:
4232 			case NESTED:
4233 			case NETWORK_NAMESPACE:
4234 			case NEVER:
4235 			case NEW:
4236 			case NEXT:
4237 			case NO:
4238 			case NODEGROUP:
4239 			case NONE:
4240 			case NOT:
4241 			case NOWAIT:
4242 			case NO_WAIT:
4243 			case NTH_VALUE:
4244 			case NTILE:
4245 			case NULL:
4246 			case NULLS:
4247 			case NUMBER:
4248 			case NVARCHAR:
4249 			case OFF:
4250 			case OFFSET:
4251 			case OJ:
4252 			case OLD:
4253 			case ONE:
4254 			case ONLY:
4255 			case OPEN:
4256 			case OPTIONAL:
4257 			case OPTIONS:
4258 			case ORDINALITY:
4259 			case ORGANIZATION:
4260 			case OTHERS:
4261 			case OWNER:
4262 			case PACK_KEYS:
4263 			case PAGE:
4264 			case PARSER:
4265 			case PARTIAL:
4266 			case PARTITIONING:
4267 			case PARTITIONS:
4268 			case PASSWORD:
4269 			case PASSWORD_LOCK_TIME:
4270 			case PATH:
4271 			case PERCENT_RANK:
4272 			case PERSIST:
4273 			case PERSIST_ONLY:
4274 			case PHASE:
4275 			case PLUGIN:
4276 			case PLUGINS:
4277 			case PLUGIN_DIR:
4278 			case POINT:
4279 			case POLYGON:
4280 			case PORT:
4281 			case PRECEDES:
4282 			case PRECEDING:
4283 			case PREPARE:
4284 			case PRESERVE:
4285 			case PREV:
4286 			case PRIMARY:
4287 			case PRIVILEGES:
4288 			case PRIVILEGE_CHECKS_USER:
4289 			case PROCESS:
4290 			case PROCESSLIST:
4291 			case PROFILE:
4292 			case PROFILES:
4293 			case PROXY:
4294 			case QUARTER:
4295 			case QUERY:
4296 			case QUICK:
4297 			case RANDOM:
4298 			case RANK:
4299 			case READ_ONLY:
4300 			case REBUILD:
4301 			case RECOVER:
4302 			case REDO_BUFFER_SIZE:
4303 			case REDUNDANT:
4304 			case REFERENCE:
4305 			case RELAY:
4306 			case RELAYLOG:
4307 			case RELAY_LOG_FILE:
4308 			case RELAY_LOG_POS:
4309 			case RELAY_THREAD:
4310 			case RELOAD:
4311 			case REMOVE:
4312 			case REORGANIZE:
4313 			case REPAIR:
4314 			case REPEAT:
4315 			case REPEATABLE:
4316 			case REPLACE:
4317 			case REPLICATE_DO_DB:
4318 			case REPLICATE_DO_TABLE:
4319 			case REPLICATE_IGNORE_DB:
4320 			case REPLICATE_IGNORE_TABLE:
4321 			case REPLICATE_REWRITE_DB:
4322 			case REPLICATE_WILD_DO_TABLE:
4323 			case REPLICATE_WILD_IGNORE_TABLE:
4324 			case REPLICATION:
4325 			case REQUIRE_ROW_FORMAT:
4326 			case RESET:
4327 			case RESOURCE:
4328 			case RESPECT:
4329 			case RESTART:
4330 			case RESTORE:
4331 			case RESUME:
4332 			case RETAIN:
4333 			case RETURNED_SQLSTATE:
4334 			case RETURNING:
4335 			case RETURNS:
4336 			case REUSE:
4337 			case REVERSE:
4338 			case RIGHT:
4339 			case ROLE:
4340 			case ROLLBACK:
4341 			case ROLLUP:
4342 			case ROTATE:
4343 			case ROUTINE:
4344 			case ROW:
4345 			case ROW_COUNT:
4346 			case ROW_FORMAT:
4347 			case ROW_NUMBER:
4348 			case RTREE:
4349 			case SAVEPOINT:
4350 			case SCHEDULE:
4351 			case SCHEMA:
4352 			case SCHEMA_NAME:
4353 			case SECOND:
4354 			case SECONDARY:
4355 			case SECONDARY_ENGINE:
4356 			case SECONDARY_ENGINE_ATTRIBUTE:
4357 			case SECONDARY_LOAD:
4358 			case SECONDARY_UNLOAD:
4359 			case SECURITY:
4360 			case SERIAL:
4361 			case SERIALIZABLE:
4362 			case SERVER:
4363 			case SESSION:
4364 			case SHARE:
4365 			case SHUTDOWN:
4366 			case SIGNED:
4367 			case SIMPLE:
4368 			case SLAVE:
4369 			case SLOW:
4370 			case SNAPSHOT:
4371 			case SOCKET:
4372 			case SONAME:
4373 			case SOUNDS:
4374 			case SOURCE:
4375 			case SQL_AFTER_GTIDS:
4376 			case SQL_AFTER_MTS_GAPS:
4377 			case SQL_BEFORE_GTIDS:
4378 			case SQL_BUFFER_RESULT:
4379 			case SQL_NO_CACHE:
4380 			case SQL_THREAD:
4381 			case SRID:
4382 			case STACKED:
4383 			case START:
4384 			case STARTS:
4385 			case STATS_AUTO_RECALC:
4386 			case STATS_PERSISTENT:
4387 			case STATS_SAMPLE_PAGES:
4388 			case STATUS:
4389 			case STOP:
4390 			case STORAGE:
4391 			case STREAM:
4392 			case STRING:
4393 			case SUBCLASS_ORIGIN:
4394 			case SUBJECT:
4395 			case SUBPARTITION:
4396 			case SUBPARTITIONS:
4397 			case SUPER:
4398 			case SUSPEND:
4399 			case SWAPS:
4400 			case SWITCHES:
4401 			case SYSTEM:
4402 			case TABLE:
4403 			case TABLES:
4404 			case TABLESPACE:
4405 			case TABLE_CHECKSUM:
4406 			case TABLE_NAME:
4407 			case TEMPORARY:
4408 			case TEMPTABLE:
4409 			case TEXT:
4410 			case THAN:
4411 			case THREAD_PRIORITY:
4412 			case TIES:
4413 			case TIME:
4414 			case TIMESTAMP:
4415 			case TIMESTAMP_ADD:
4416 			case TIMESTAMP_DIFF:
4417 			case TLS:
4418 			case TRANSACTION:
4419 			case TRIGGERS:
4420 			case TRUE:
4421 			case TRUNCATE:
4422 			case TYPE:
4423 			case TYPES:
4424 			case UNBOUNDED:
4425 			case UNCOMMITTED:
4426 			case UNDEFINED:
4427 			case UNDOFILE:
4428 			case UNDO_BUFFER_SIZE:
4429 			case UNICODE:
4430 			case UNINSTALL:
4431 			case UNKNOWN:
4432 			case UNTIL:
4433 			case UPGRADE:
4434 			case USER:
4435 			case USER_RESOURCES:
4436 			case USE_FRM:
4437 			case UTC_DATE:
4438 			case UTC_TIME:
4439 			case UTC_TIMESTAMP:
4440 			case VALIDATION:
4441 			case VALUE:
4442 			case VALUES:
4443 			case VARIABLES:
4444 			case VCPU:
4445 			case VIEW:
4446 			case VISIBLE:
4447 			case WAIT:
4448 			case WARNINGS:
4449 			case WEEK:
4450 			case WEIGHT_STRING:
4451 			case WITHOUT:
4452 			case WORK:
4453 			case WRAPPER:
4454 			case X509:
4455 			case XA:
4456 			case XID:
4457 			case XML:
4458 			case YEAR:
4459 			case YEAR_MONTH:
4460 			case JSON_ARRAY:
4461 			case JSON_ARRAY_APPEND:
4462 			case JSON_ARRAY_INSERT:
4463 			case JSON_CONTAINS:
4464 			case JSON_CONTAINS_PATH:
4465 			case JSON_DEPTH:
4466 			case JSON_EXTRACT:
4467 			case JSON_INSERT:
4468 			case JSON_KEYS:
4469 			case JSON_LENGTH:
4470 			case JSON_MERGE:
4471 			case JSON_MERGE_PATCH:
4472 			case JSON_MERGE_PRESERVE:
4473 			case JSON_OBJECT:
4474 			case JSON_OVERLAPS:
4475 			case JSON_PRETTY:
4476 			case JSON_QUOTE:
4477 			case JSON_REMOVE:
4478 			case JSON_REPLACE:
4479 			case JSON_SCHEMA_VALID:
4480 			case JSON_SCHEMA_VALIDATION_REPORT:
4481 			case JSON_SEARCH:
4482 			case JSON_SET:
4483 			case JSON_STORAGE_FREE:
4484 			case JSON_STORAGE_SIZE:
4485 			case JSON_TYPE:
4486 			case JSON_UNQUOTE:
4487 			case JSON_VALID:
4488 			case SINGLE_QUOTED_TEXT:
4489 			case DOUBLE_QUOTED_TEXT:
4490 			case BQUOTA_STRING:
4491 			case NCHAR_TEXT:
4492 			case UNDERSCORE_CHARSET:
4493 			case NUMBER_:
4494 			case HEX_DIGIT_:
4495 			case BIT_NUM_:
4496 			case IDENTIFIER_:
4497 			case IP_ADDRESS:
4498 				{
4499 				setState(893);
4500 				projection();
4501 				}
4502 				break;
4503 			default:
4504 				throw new NoViableAltException(this);
4505 			}
4506 			setState(900);
4507 			_errHandler.sync(this);
4508 			_alt = getInterpreter().adaptivePredict(_input,78,_ctx);
4509 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
4510 				if ( _alt==1 ) {
4511 					{
4512 					{
4513 					setState(896);
4514 					match(COMMA_);
4515 					setState(897);
4516 					projection();
4517 					}
4518 					} 
4519 				}
4520 				setState(902);
4521 				_errHandler.sync(this);
4522 				_alt = getInterpreter().adaptivePredict(_input,78,_ctx);
4523 			}
4524 			}
4525 		}
4526 		catch (RecognitionException re) {
4527 			_localctx.exception = re;
4528 			_errHandler.reportError(this, re);
4529 			_errHandler.recover(this, re);
4530 		}
4531 		finally {
4532 			exitRule();
4533 		}
4534 		return _localctx;
4535 	}
4536 
4537 	public static class ProjectionContext extends ParserRuleContext {
4538 		public ExprContext expr() {
4539 			return getRuleContext(ExprContext.class,0);
4540 		}
4541 		public AliasContext alias() {
4542 			return getRuleContext(AliasContext.class,0);
4543 		}
4544 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
4545 		public QualifiedShorthandContext qualifiedShorthand() {
4546 			return getRuleContext(QualifiedShorthandContext.class,0);
4547 		}
4548 		public ProjectionContext(ParserRuleContext parent, int invokingState) {
4549 			super(parent, invokingState);
4550 		}
4551 		@Override public int getRuleIndex() { return RULE_projection; }
4552 		@Override
4553 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
4554 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitProjection(this);
4555 			else return visitor.visitChildren(this);
4556 		}
4557 	}
4558 
4559 	public final ProjectionContext projection() throws RecognitionException {
4560 		ProjectionContext _localctx = new ProjectionContext(_ctx, getState());
4561 		enterRule(_localctx, 76, RULE_projection);
4562 		int _la;
4563 		try {
4564 			setState(911);
4565 			_errHandler.sync(this);
4566 			switch ( getInterpreter().adaptivePredict(_input,81,_ctx) ) {
4567 			case 1:
4568 				enterOuterAlt(_localctx, 1);
4569 				{
4570 				setState(903);
4571 				expr(0);
4572 				setState(908);
4573 				_errHandler.sync(this);
4574 				switch ( getInterpreter().adaptivePredict(_input,80,_ctx) ) {
4575 				case 1:
4576 					{
4577 					setState(905);
4578 					_errHandler.sync(this);
4579 					_la = _input.LA(1);
4580 					if (_la==AS) {
4581 						{
4582 						setState(904);
4583 						match(AS);
4584 						}
4585 					}
4586 
4587 					setState(907);
4588 					alias();
4589 					}
4590 					break;
4591 				}
4592 				}
4593 				break;
4594 			case 2:
4595 				enterOuterAlt(_localctx, 2);
4596 				{
4597 				setState(910);
4598 				qualifiedShorthand();
4599 				}
4600 				break;
4601 			}
4602 		}
4603 		catch (RecognitionException re) {
4604 			_localctx.exception = re;
4605 			_errHandler.reportError(this, re);
4606 			_errHandler.recover(this, re);
4607 		}
4608 		finally {
4609 			exitRule();
4610 		}
4611 		return _localctx;
4612 	}
4613 
4614 	public static class UnqualifiedShorthandContext extends ParserRuleContext {
4615 		public TerminalNode ASTERISK_() { return getToken(HiveStatementParser.ASTERISK_, 0); }
4616 		public UnqualifiedShorthandContext(ParserRuleContext parent, int invokingState) {
4617 			super(parent, invokingState);
4618 		}
4619 		@Override public int getRuleIndex() { return RULE_unqualifiedShorthand; }
4620 		@Override
4621 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
4622 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUnqualifiedShorthand(this);
4623 			else return visitor.visitChildren(this);
4624 		}
4625 	}
4626 
4627 	public final UnqualifiedShorthandContext unqualifiedShorthand() throws RecognitionException {
4628 		UnqualifiedShorthandContext _localctx = new UnqualifiedShorthandContext(_ctx, getState());
4629 		enterRule(_localctx, 78, RULE_unqualifiedShorthand);
4630 		try {
4631 			enterOuterAlt(_localctx, 1);
4632 			{
4633 			setState(913);
4634 			match(ASTERISK_);
4635 			}
4636 		}
4637 		catch (RecognitionException re) {
4638 			_localctx.exception = re;
4639 			_errHandler.reportError(this, re);
4640 			_errHandler.recover(this, re);
4641 		}
4642 		finally {
4643 			exitRule();
4644 		}
4645 		return _localctx;
4646 	}
4647 
4648 	public static class QualifiedShorthandContext extends ParserRuleContext {
4649 		public List<IdentifierContext> identifier() {
4650 			return getRuleContexts(IdentifierContext.class);
4651 		}
4652 		public IdentifierContext identifier(int i) {
4653 			return getRuleContext(IdentifierContext.class,i);
4654 		}
4655 		public TerminalNode DOT_ASTERISK_() { return getToken(HiveStatementParser.DOT_ASTERISK_, 0); }
4656 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
4657 		public QualifiedShorthandContext(ParserRuleContext parent, int invokingState) {
4658 			super(parent, invokingState);
4659 		}
4660 		@Override public int getRuleIndex() { return RULE_qualifiedShorthand; }
4661 		@Override
4662 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
4663 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitQualifiedShorthand(this);
4664 			else return visitor.visitChildren(this);
4665 		}
4666 	}
4667 
4668 	public final QualifiedShorthandContext qualifiedShorthand() throws RecognitionException {
4669 		QualifiedShorthandContext _localctx = new QualifiedShorthandContext(_ctx, getState());
4670 		enterRule(_localctx, 80, RULE_qualifiedShorthand);
4671 		try {
4672 			enterOuterAlt(_localctx, 1);
4673 			{
4674 			setState(918);
4675 			_errHandler.sync(this);
4676 			switch ( getInterpreter().adaptivePredict(_input,82,_ctx) ) {
4677 			case 1:
4678 				{
4679 				setState(915);
4680 				identifier();
4681 				setState(916);
4682 				match(DOT_);
4683 				}
4684 				break;
4685 			}
4686 			setState(920);
4687 			identifier();
4688 			setState(921);
4689 			match(DOT_ASTERISK_);
4690 			}
4691 		}
4692 		catch (RecognitionException re) {
4693 			_localctx.exception = re;
4694 			_errHandler.reportError(this, re);
4695 			_errHandler.recover(this, re);
4696 		}
4697 		finally {
4698 			exitRule();
4699 		}
4700 		return _localctx;
4701 	}
4702 
4703 	public static class FromClauseContext extends ParserRuleContext {
4704 		public TerminalNode FROM() { return getToken(HiveStatementParser.FROM, 0); }
4705 		public TerminalNode DUAL() { return getToken(HiveStatementParser.DUAL, 0); }
4706 		public TableReferencesContext tableReferences() {
4707 			return getRuleContext(TableReferencesContext.class,0);
4708 		}
4709 		public FromClauseContext(ParserRuleContext parent, int invokingState) {
4710 			super(parent, invokingState);
4711 		}
4712 		@Override public int getRuleIndex() { return RULE_fromClause; }
4713 		@Override
4714 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
4715 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFromClause(this);
4716 			else return visitor.visitChildren(this);
4717 		}
4718 	}
4719 
4720 	public final FromClauseContext fromClause() throws RecognitionException {
4721 		FromClauseContext _localctx = new FromClauseContext(_ctx, getState());
4722 		enterRule(_localctx, 82, RULE_fromClause);
4723 		try {
4724 			enterOuterAlt(_localctx, 1);
4725 			{
4726 			setState(923);
4727 			match(FROM);
4728 			setState(926);
4729 			_errHandler.sync(this);
4730 			switch (_input.LA(1)) {
4731 			case DUAL:
4732 				{
4733 				setState(924);
4734 				match(DUAL);
4735 				}
4736 				break;
4737 			case LP_:
4738 			case LBE_:
4739 			case MAX:
4740 			case MIN:
4741 			case SUM:
4742 			case COUNT:
4743 			case GROUP_CONCAT:
4744 			case CAST:
4745 			case POSITION:
4746 			case SUBSTRING:
4747 			case SUBSTR:
4748 			case EXTRACT:
4749 			case TRIM:
4750 			case LAST_DAY:
4751 			case TRADITIONAL:
4752 			case TREE:
4753 			case MYSQL_MAIN:
4754 			case MYSQL_ADMIN:
4755 			case INSTANT:
4756 			case INPLACE:
4757 			case COPY:
4758 			case UL_BINARY:
4759 			case AUTOCOMMIT:
4760 			case INNODB:
4761 			case REDO_LOG:
4762 			case ACCOUNT:
4763 			case ACTION:
4764 			case ACTIVE:
4765 			case ADMIN:
4766 			case AFTER:
4767 			case AGAINST:
4768 			case AGGREGATE:
4769 			case ALGORITHM:
4770 			case ALWAYS:
4771 			case ANY:
4772 			case ARRAY:
4773 			case ASCII:
4774 			case AT:
4775 			case ATTRIBUTE:
4776 			case AUTOEXTEND_SIZE:
4777 			case AUTO_INCREMENT:
4778 			case AVG:
4779 			case BIT_XOR:
4780 			case AVG_ROW_LENGTH:
4781 			case BACKUP:
4782 			case BEGIN:
4783 			case BINLOG:
4784 			case BIT:
4785 			case BLOCK:
4786 			case BOOL:
4787 			case BOOLEAN:
4788 			case BTREE:
4789 			case BUCKETS:
4790 			case BYTE:
4791 			case CACHE:
4792 			case CASCADED:
4793 			case CATALOG_NAME:
4794 			case CHAIN:
4795 			case CHANGED:
4796 			case CHANNEL:
4797 			case CHARSET:
4798 			case CHECKSUM:
4799 			case CIPHER:
4800 			case CLASS_ORIGIN:
4801 			case CLIENT:
4802 			case CLONE:
4803 			case CLOSE:
4804 			case COALESCE:
4805 			case CODE:
4806 			case COLLATION:
4807 			case COLUMNS:
4808 			case COLUMN_FORMAT:
4809 			case COLUMN_NAME:
4810 			case COMMENT:
4811 			case COMMIT:
4812 			case COMMITTED:
4813 			case COMPACT:
4814 			case COMPLETION:
4815 			case COMPONENT:
4816 			case COMPRESSED:
4817 			case COMPRESSION:
4818 			case CONCURRENT:
4819 			case CONNECTION:
4820 			case CONSISTENT:
4821 			case CONSTRAINT_CATALOG:
4822 			case CONSTRAINT_NAME:
4823 			case CONSTRAINT_SCHEMA:
4824 			case CONTAINS:
4825 			case CONTEXT:
4826 			case CPU:
4827 			case CREATE:
4828 			case CURRENT:
4829 			case CURSOR_NAME:
4830 			case DATA:
4831 			case DATAFILE:
4832 			case DATE:
4833 			case DATETIME:
4834 			case DAY:
4835 			case DAY_MINUTE:
4836 			case DEALLOCATE:
4837 			case DEFAULT_AUTH:
4838 			case DEFINER:
4839 			case DEFINITION:
4840 			case DELAY_KEY_WRITE:
4841 			case DESCRIPTION:
4842 			case DIAGNOSTICS:
4843 			case DIRECTORY:
4844 			case DISABLE:
4845 			case DISCARD:
4846 			case DISK:
4847 			case DO:
4848 			case DUMPFILE:
4849 			case DUPLICATE:
4850 			case DYNAMIC:
4851 			case ENABLE:
4852 			case ENCRYPTION:
4853 			case END:
4854 			case ENDS:
4855 			case ENFORCED:
4856 			case ENGINE:
4857 			case ENGINES:
4858 			case ENGINE_ATTRIBUTE:
4859 			case ENUM:
4860 			case ERROR:
4861 			case ERRORS:
4862 			case ESCAPE:
4863 			case EVENT:
4864 			case EVENTS:
4865 			case EVERY:
4866 			case EXCHANGE:
4867 			case EXCLUDE:
4868 			case EXECUTE:
4869 			case EXPANSION:
4870 			case EXPIRE:
4871 			case EXPORT:
4872 			case EXTENDED:
4873 			case EXTENT_SIZE:
4874 			case FAILED_LOGIN_ATTEMPTS:
4875 			case FAST:
4876 			case FAULTS:
4877 			case FILE:
4878 			case FILE_BLOCK_SIZE:
4879 			case FILTER:
4880 			case FIRST:
4881 			case FIXED:
4882 			case FLUSH:
4883 			case FOLLOWING:
4884 			case FOLLOWS:
4885 			case FORMAT:
4886 			case FOUND:
4887 			case FULL:
4888 			case GENERAL:
4889 			case GEOMETRY:
4890 			case GEOMETRYCOLLECTION:
4891 			case GET_FORMAT:
4892 			case GET_MASTER_PUBLIC_KEY:
4893 			case GLOBAL:
4894 			case GRANTS:
4895 			case GROUP_REPLICATION:
4896 			case HANDLER:
4897 			case HASH:
4898 			case HELP:
4899 			case HISTOGRAM:
4900 			case HISTORY:
4901 			case HOST:
4902 			case HOSTS:
4903 			case HOUR:
4904 			case IDENTIFIED:
4905 			case IGNORE_SERVER_IDS:
4906 			case IMPORT:
4907 			case INACTIVE:
4908 			case INDEXES:
4909 			case INITIAL_SIZE:
4910 			case INSERT_METHOD:
4911 			case INSTALL:
4912 			case INSTANCE:
4913 			case INVISIBLE:
4914 			case INVOKER:
4915 			case IO:
4916 			case IPC:
4917 			case ISOLATION:
4918 			case ISSUER:
4919 			case JSON:
4920 			case JSON_VALUE:
4921 			case KEY:
4922 			case KEY_BLOCK_SIZE:
4923 			case LANGUAGE:
4924 			case LAST:
4925 			case LAST_VALUE:
4926 			case LEAVES:
4927 			case LESS:
4928 			case LEVEL:
4929 			case LINESTRING:
4930 			case LIST:
4931 			case LOCAL:
4932 			case LOCKED:
4933 			case LOCKS:
4934 			case LOGFILE:
4935 			case LOGS:
4936 			case MASTER:
4937 			case MASTER_AUTO_POSITION:
4938 			case MASTER_COMPRESSION_ALGORITHM:
4939 			case MASTER_CONNECT_RETRY:
4940 			case MASTER_DELAY:
4941 			case MASTER_HEARTBEAT_PERIOD:
4942 			case MASTER_HOST:
4943 			case MASTER_LOG_FILE:
4944 			case MASTER_LOG_POS:
4945 			case MASTER_PASSWORD:
4946 			case MASTER_PORT:
4947 			case MASTER_PUBLIC_KEY_PATH:
4948 			case MASTER_RETRY_COUNT:
4949 			case MASTER_SERVER_ID:
4950 			case MASTER_SSL:
4951 			case MASTER_SSL_CA:
4952 			case MASTER_SSL_CAPATH:
4953 			case MASTER_SSL_CERT:
4954 			case MASTER_SSL_CIPHER:
4955 			case MASTER_SSL_CRL:
4956 			case MASTER_SSL_CRLPATH:
4957 			case MASTER_SSL_KEY:
4958 			case MASTER_TLS_CIPHERSUITES:
4959 			case MASTER_TLS_VERSION:
4960 			case MASTER_USER:
4961 			case MASTER_ZSTD_COMPRESSION_LEVEL:
4962 			case MAXVALUE:
4963 			case MAX_CONNECTIONS_PER_HOUR:
4964 			case MAX_QUERIES_PER_HOUR:
4965 			case MAX_ROWS:
4966 			case MAX_SIZE:
4967 			case MAX_UPDATES_PER_HOUR:
4968 			case MAX_USER_CONNECTIONS:
4969 			case MEDIUM:
4970 			case MEMBER:
4971 			case MEMORY:
4972 			case MERGE:
4973 			case MESSAGE_TEXT:
4974 			case MICROSECOND:
4975 			case MIGRATE:
4976 			case MINUTE:
4977 			case MIN_ROWS:
4978 			case MODE:
4979 			case MODIFY:
4980 			case MONTH:
4981 			case MULTILINESTRING:
4982 			case MULTIPOINT:
4983 			case MULTIPOLYGON:
4984 			case MUTEX:
4985 			case MYSQL_ERRNO:
4986 			case NAME:
4987 			case NAMES:
4988 			case NATIONAL:
4989 			case NCHAR:
4990 			case NDBCLUSTER:
4991 			case NESTED:
4992 			case NETWORK_NAMESPACE:
4993 			case NEVER:
4994 			case NEW:
4995 			case NEXT:
4996 			case NO:
4997 			case NODEGROUP:
4998 			case NONE:
4999 			case NOWAIT:
5000 			case NO_WAIT:
5001 			case NULLS:
5002 			case NUMBER:
5003 			case NVARCHAR:
5004 			case OFF:
5005 			case OFFSET:
5006 			case OJ:
5007 			case OLD:
5008 			case ONE:
5009 			case ONLY:
5010 			case OPEN:
5011 			case OPTIONAL:
5012 			case OPTIONS:
5013 			case ORDINALITY:
5014 			case ORGANIZATION:
5015 			case OTHERS:
5016 			case OWNER:
5017 			case PACK_KEYS:
5018 			case PAGE:
5019 			case PARSER:
5020 			case PARTIAL:
5021 			case PARTITIONING:
5022 			case PARTITIONS:
5023 			case PASSWORD:
5024 			case PASSWORD_LOCK_TIME:
5025 			case PATH:
5026 			case PERSIST:
5027 			case PERSIST_ONLY:
5028 			case PHASE:
5029 			case PLUGIN:
5030 			case PLUGINS:
5031 			case PLUGIN_DIR:
5032 			case POINT:
5033 			case POLYGON:
5034 			case PORT:
5035 			case PRECEDES:
5036 			case PRECEDING:
5037 			case PREPARE:
5038 			case PRESERVE:
5039 			case PREV:
5040 			case PRIMARY:
5041 			case PRIVILEGES:
5042 			case PRIVILEGE_CHECKS_USER:
5043 			case PROCESS:
5044 			case PROCESSLIST:
5045 			case PROFILE:
5046 			case PROFILES:
5047 			case PROXY:
5048 			case QUARTER:
5049 			case QUERY:
5050 			case QUICK:
5051 			case RANDOM:
5052 			case READ_ONLY:
5053 			case REBUILD:
5054 			case RECOVER:
5055 			case REDO_BUFFER_SIZE:
5056 			case REDUNDANT:
5057 			case REFERENCE:
5058 			case RELAY:
5059 			case RELAYLOG:
5060 			case RELAY_LOG_FILE:
5061 			case RELAY_LOG_POS:
5062 			case RELAY_THREAD:
5063 			case RELOAD:
5064 			case REMOVE:
5065 			case REORGANIZE:
5066 			case REPAIR:
5067 			case REPEATABLE:
5068 			case REPLICATE_DO_DB:
5069 			case REPLICATE_DO_TABLE:
5070 			case REPLICATE_IGNORE_DB:
5071 			case REPLICATE_IGNORE_TABLE:
5072 			case REPLICATE_REWRITE_DB:
5073 			case REPLICATE_WILD_DO_TABLE:
5074 			case REPLICATE_WILD_IGNORE_TABLE:
5075 			case REPLICATION:
5076 			case REQUIRE_ROW_FORMAT:
5077 			case RESET:
5078 			case RESOURCE:
5079 			case RESPECT:
5080 			case RESTART:
5081 			case RESTORE:
5082 			case RESUME:
5083 			case RETAIN:
5084 			case RETURNED_SQLSTATE:
5085 			case RETURNING:
5086 			case RETURNS:
5087 			case REUSE:
5088 			case REVERSE:
5089 			case ROLE:
5090 			case ROLLBACK:
5091 			case ROLLUP:
5092 			case ROTATE:
5093 			case ROUTINE:
5094 			case ROW_COUNT:
5095 			case ROW_FORMAT:
5096 			case RTREE:
5097 			case SAVEPOINT:
5098 			case SCHEDULE:
5099 			case SCHEMA_NAME:
5100 			case SECOND:
5101 			case SECONDARY:
5102 			case SECONDARY_ENGINE:
5103 			case SECONDARY_ENGINE_ATTRIBUTE:
5104 			case SECONDARY_LOAD:
5105 			case SECONDARY_UNLOAD:
5106 			case SECURITY:
5107 			case SERIAL:
5108 			case SERIALIZABLE:
5109 			case SERVER:
5110 			case SESSION:
5111 			case SHARE:
5112 			case SHUTDOWN:
5113 			case SIGNED:
5114 			case SIMPLE:
5115 			case SLAVE:
5116 			case SLOW:
5117 			case SNAPSHOT:
5118 			case SOCKET:
5119 			case SONAME:
5120 			case SOUNDS:
5121 			case SOURCE:
5122 			case SQL_AFTER_GTIDS:
5123 			case SQL_AFTER_MTS_GAPS:
5124 			case SQL_BEFORE_GTIDS:
5125 			case SQL_BUFFER_RESULT:
5126 			case SQL_NO_CACHE:
5127 			case SQL_THREAD:
5128 			case SRID:
5129 			case STACKED:
5130 			case START:
5131 			case STARTS:
5132 			case STATS_AUTO_RECALC:
5133 			case STATS_PERSISTENT:
5134 			case STATS_SAMPLE_PAGES:
5135 			case STATUS:
5136 			case STOP:
5137 			case STORAGE:
5138 			case STREAM:
5139 			case STRING:
5140 			case SUBCLASS_ORIGIN:
5141 			case SUBJECT:
5142 			case SUBPARTITION:
5143 			case SUBPARTITIONS:
5144 			case SUPER:
5145 			case SUSPEND:
5146 			case SWAPS:
5147 			case SWITCHES:
5148 			case SYSTEM:
5149 			case TABLE:
5150 			case TABLES:
5151 			case TABLESPACE:
5152 			case TABLE_CHECKSUM:
5153 			case TABLE_NAME:
5154 			case TEMPORARY:
5155 			case TEMPTABLE:
5156 			case TEXT:
5157 			case THAN:
5158 			case THREAD_PRIORITY:
5159 			case TIES:
5160 			case TIME:
5161 			case TIMESTAMP:
5162 			case TIMESTAMP_ADD:
5163 			case TIMESTAMP_DIFF:
5164 			case TLS:
5165 			case TRANSACTION:
5166 			case TRIGGERS:
5167 			case TRUNCATE:
5168 			case TYPE:
5169 			case TYPES:
5170 			case UNBOUNDED:
5171 			case UNCOMMITTED:
5172 			case UNDEFINED:
5173 			case UNDOFILE:
5174 			case UNDO_BUFFER_SIZE:
5175 			case UNICODE:
5176 			case UNINSTALL:
5177 			case UNKNOWN:
5178 			case UNTIL:
5179 			case UPGRADE:
5180 			case USER:
5181 			case USER_RESOURCES:
5182 			case USE_FRM:
5183 			case UTC_DATE:
5184 			case UTC_TIME:
5185 			case UTC_TIMESTAMP:
5186 			case VALIDATION:
5187 			case VALUE:
5188 			case VARIABLES:
5189 			case VCPU:
5190 			case VIEW:
5191 			case VISIBLE:
5192 			case WAIT:
5193 			case WARNINGS:
5194 			case WEEK:
5195 			case WEIGHT_STRING:
5196 			case WITHOUT:
5197 			case WORK:
5198 			case WRAPPER:
5199 			case X509:
5200 			case XA:
5201 			case XID:
5202 			case XML:
5203 			case YEAR:
5204 			case YEAR_MONTH:
5205 			case DOUBLE_QUOTED_TEXT:
5206 			case BQUOTA_STRING:
5207 			case UNDERSCORE_CHARSET:
5208 			case IDENTIFIER_:
5209 				{
5210 				setState(925);
5211 				tableReferences();
5212 				}
5213 				break;
5214 			default:
5215 				throw new NoViableAltException(this);
5216 			}
5217 			}
5218 		}
5219 		catch (RecognitionException re) {
5220 			_localctx.exception = re;
5221 			_errHandler.reportError(this, re);
5222 			_errHandler.recover(this, re);
5223 		}
5224 		finally {
5225 			exitRule();
5226 		}
5227 		return _localctx;
5228 	}
5229 
5230 	public static class TableReferencesContext extends ParserRuleContext {
5231 		public List<TableReferenceContext> tableReference() {
5232 			return getRuleContexts(TableReferenceContext.class);
5233 		}
5234 		public TableReferenceContext tableReference(int i) {
5235 			return getRuleContext(TableReferenceContext.class,i);
5236 		}
5237 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
5238 		public TerminalNode COMMA_(int i) {
5239 			return getToken(HiveStatementParser.COMMA_, i);
5240 		}
5241 		public TableReferencesContext(ParserRuleContext parent, int invokingState) {
5242 			super(parent, invokingState);
5243 		}
5244 		@Override public int getRuleIndex() { return RULE_tableReferences; }
5245 		@Override
5246 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
5247 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableReferences(this);
5248 			else return visitor.visitChildren(this);
5249 		}
5250 	}
5251 
5252 	public final TableReferencesContext tableReferences() throws RecognitionException {
5253 		TableReferencesContext _localctx = new TableReferencesContext(_ctx, getState());
5254 		enterRule(_localctx, 84, RULE_tableReferences);
5255 		try {
5256 			int _alt;
5257 			enterOuterAlt(_localctx, 1);
5258 			{
5259 			setState(928);
5260 			tableReference();
5261 			setState(933);
5262 			_errHandler.sync(this);
5263 			_alt = getInterpreter().adaptivePredict(_input,84,_ctx);
5264 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
5265 				if ( _alt==1 ) {
5266 					{
5267 					{
5268 					setState(929);
5269 					match(COMMA_);
5270 					setState(930);
5271 					tableReference();
5272 					}
5273 					} 
5274 				}
5275 				setState(935);
5276 				_errHandler.sync(this);
5277 				_alt = getInterpreter().adaptivePredict(_input,84,_ctx);
5278 			}
5279 			}
5280 		}
5281 		catch (RecognitionException re) {
5282 			_localctx.exception = re;
5283 			_errHandler.reportError(this, re);
5284 			_errHandler.recover(this, re);
5285 		}
5286 		finally {
5287 			exitRule();
5288 		}
5289 		return _localctx;
5290 	}
5291 
5292 	public static class EscapedTableReferenceContext extends ParserRuleContext {
5293 		public TableFactorContext tableFactor() {
5294 			return getRuleContext(TableFactorContext.class,0);
5295 		}
5296 		public List<JoinedTableContext> joinedTable() {
5297 			return getRuleContexts(JoinedTableContext.class);
5298 		}
5299 		public JoinedTableContext joinedTable(int i) {
5300 			return getRuleContext(JoinedTableContext.class,i);
5301 		}
5302 		public EscapedTableReferenceContext(ParserRuleContext parent, int invokingState) {
5303 			super(parent, invokingState);
5304 		}
5305 		@Override public int getRuleIndex() { return RULE_escapedTableReference; }
5306 		@Override
5307 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
5308 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitEscapedTableReference(this);
5309 			else return visitor.visitChildren(this);
5310 		}
5311 	}
5312 
5313 	public final EscapedTableReferenceContext escapedTableReference() throws RecognitionException {
5314 		EscapedTableReferenceContext _localctx = new EscapedTableReferenceContext(_ctx, getState());
5315 		enterRule(_localctx, 86, RULE_escapedTableReference);
5316 		int _la;
5317 		try {
5318 			enterOuterAlt(_localctx, 1);
5319 			{
5320 			setState(936);
5321 			tableFactor();
5322 			setState(940);
5323 			_errHandler.sync(this);
5324 			_la = _input.LA(1);
5325 			while (_la==CROSS || ((((_la - 323)) & ~0x3f) == 0 && ((1L << (_la - 323)) & ((1L << (INNER - 323)) | (1L << (JOIN - 323)) | (1L << (LEFT - 323)))) != 0) || _la==NATURAL || _la==RIGHT || _la==STRAIGHT_JOIN) {
5326 				{
5327 				{
5328 				setState(937);
5329 				joinedTable();
5330 				}
5331 				}
5332 				setState(942);
5333 				_errHandler.sync(this);
5334 				_la = _input.LA(1);
5335 			}
5336 			}
5337 		}
5338 		catch (RecognitionException re) {
5339 			_localctx.exception = re;
5340 			_errHandler.reportError(this, re);
5341 			_errHandler.recover(this, re);
5342 		}
5343 		finally {
5344 			exitRule();
5345 		}
5346 		return _localctx;
5347 	}
5348 
5349 	public static class TableReferenceContext extends ParserRuleContext {
5350 		public TableFactorContext tableFactor() {
5351 			return getRuleContext(TableFactorContext.class,0);
5352 		}
5353 		public TerminalNode LBE_() { return getToken(HiveStatementParser.LBE_, 0); }
5354 		public TerminalNode OJ() { return getToken(HiveStatementParser.OJ, 0); }
5355 		public EscapedTableReferenceContext escapedTableReference() {
5356 			return getRuleContext(EscapedTableReferenceContext.class,0);
5357 		}
5358 		public TerminalNode RBE_() { return getToken(HiveStatementParser.RBE_, 0); }
5359 		public List<JoinedTableContext> joinedTable() {
5360 			return getRuleContexts(JoinedTableContext.class);
5361 		}
5362 		public JoinedTableContext joinedTable(int i) {
5363 			return getRuleContext(JoinedTableContext.class,i);
5364 		}
5365 		public TableReferenceContext(ParserRuleContext parent, int invokingState) {
5366 			super(parent, invokingState);
5367 		}
5368 		@Override public int getRuleIndex() { return RULE_tableReference; }
5369 		@Override
5370 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
5371 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableReference(this);
5372 			else return visitor.visitChildren(this);
5373 		}
5374 	}
5375 
5376 	public final TableReferenceContext tableReference() throws RecognitionException {
5377 		TableReferenceContext _localctx = new TableReferenceContext(_ctx, getState());
5378 		enterRule(_localctx, 88, RULE_tableReference);
5379 		try {
5380 			int _alt;
5381 			enterOuterAlt(_localctx, 1);
5382 			{
5383 			setState(949);
5384 			_errHandler.sync(this);
5385 			switch (_input.LA(1)) {
5386 			case LP_:
5387 			case MAX:
5388 			case MIN:
5389 			case SUM:
5390 			case COUNT:
5391 			case GROUP_CONCAT:
5392 			case CAST:
5393 			case POSITION:
5394 			case SUBSTRING:
5395 			case SUBSTR:
5396 			case EXTRACT:
5397 			case TRIM:
5398 			case LAST_DAY:
5399 			case TRADITIONAL:
5400 			case TREE:
5401 			case MYSQL_MAIN:
5402 			case MYSQL_ADMIN:
5403 			case INSTANT:
5404 			case INPLACE:
5405 			case COPY:
5406 			case UL_BINARY:
5407 			case AUTOCOMMIT:
5408 			case INNODB:
5409 			case REDO_LOG:
5410 			case ACCOUNT:
5411 			case ACTION:
5412 			case ACTIVE:
5413 			case ADMIN:
5414 			case AFTER:
5415 			case AGAINST:
5416 			case AGGREGATE:
5417 			case ALGORITHM:
5418 			case ALWAYS:
5419 			case ANY:
5420 			case ARRAY:
5421 			case ASCII:
5422 			case AT:
5423 			case ATTRIBUTE:
5424 			case AUTOEXTEND_SIZE:
5425 			case AUTO_INCREMENT:
5426 			case AVG:
5427 			case BIT_XOR:
5428 			case AVG_ROW_LENGTH:
5429 			case BACKUP:
5430 			case BEGIN:
5431 			case BINLOG:
5432 			case BIT:
5433 			case BLOCK:
5434 			case BOOL:
5435 			case BOOLEAN:
5436 			case BTREE:
5437 			case BUCKETS:
5438 			case BYTE:
5439 			case CACHE:
5440 			case CASCADED:
5441 			case CATALOG_NAME:
5442 			case CHAIN:
5443 			case CHANGED:
5444 			case CHANNEL:
5445 			case CHARSET:
5446 			case CHECKSUM:
5447 			case CIPHER:
5448 			case CLASS_ORIGIN:
5449 			case CLIENT:
5450 			case CLONE:
5451 			case CLOSE:
5452 			case COALESCE:
5453 			case CODE:
5454 			case COLLATION:
5455 			case COLUMNS:
5456 			case COLUMN_FORMAT:
5457 			case COLUMN_NAME:
5458 			case COMMENT:
5459 			case COMMIT:
5460 			case COMMITTED:
5461 			case COMPACT:
5462 			case COMPLETION:
5463 			case COMPONENT:
5464 			case COMPRESSED:
5465 			case COMPRESSION:
5466 			case CONCURRENT:
5467 			case CONNECTION:
5468 			case CONSISTENT:
5469 			case CONSTRAINT_CATALOG:
5470 			case CONSTRAINT_NAME:
5471 			case CONSTRAINT_SCHEMA:
5472 			case CONTAINS:
5473 			case CONTEXT:
5474 			case CPU:
5475 			case CREATE:
5476 			case CURRENT:
5477 			case CURSOR_NAME:
5478 			case DATA:
5479 			case DATAFILE:
5480 			case DATE:
5481 			case DATETIME:
5482 			case DAY:
5483 			case DAY_MINUTE:
5484 			case DEALLOCATE:
5485 			case DEFAULT_AUTH:
5486 			case DEFINER:
5487 			case DEFINITION:
5488 			case DELAY_KEY_WRITE:
5489 			case DESCRIPTION:
5490 			case DIAGNOSTICS:
5491 			case DIRECTORY:
5492 			case DISABLE:
5493 			case DISCARD:
5494 			case DISK:
5495 			case DO:
5496 			case DUMPFILE:
5497 			case DUPLICATE:
5498 			case DYNAMIC:
5499 			case ENABLE:
5500 			case ENCRYPTION:
5501 			case END:
5502 			case ENDS:
5503 			case ENFORCED:
5504 			case ENGINE:
5505 			case ENGINES:
5506 			case ENGINE_ATTRIBUTE:
5507 			case ENUM:
5508 			case ERROR:
5509 			case ERRORS:
5510 			case ESCAPE:
5511 			case EVENT:
5512 			case EVENTS:
5513 			case EVERY:
5514 			case EXCHANGE:
5515 			case EXCLUDE:
5516 			case EXECUTE:
5517 			case EXPANSION:
5518 			case EXPIRE:
5519 			case EXPORT:
5520 			case EXTENDED:
5521 			case EXTENT_SIZE:
5522 			case FAILED_LOGIN_ATTEMPTS:
5523 			case FAST:
5524 			case FAULTS:
5525 			case FILE:
5526 			case FILE_BLOCK_SIZE:
5527 			case FILTER:
5528 			case FIRST:
5529 			case FIXED:
5530 			case FLUSH:
5531 			case FOLLOWING:
5532 			case FOLLOWS:
5533 			case FORMAT:
5534 			case FOUND:
5535 			case FULL:
5536 			case GENERAL:
5537 			case GEOMETRY:
5538 			case GEOMETRYCOLLECTION:
5539 			case GET_FORMAT:
5540 			case GET_MASTER_PUBLIC_KEY:
5541 			case GLOBAL:
5542 			case GRANTS:
5543 			case GROUP_REPLICATION:
5544 			case HANDLER:
5545 			case HASH:
5546 			case HELP:
5547 			case HISTOGRAM:
5548 			case HISTORY:
5549 			case HOST:
5550 			case HOSTS:
5551 			case HOUR:
5552 			case IDENTIFIED:
5553 			case IGNORE_SERVER_IDS:
5554 			case IMPORT:
5555 			case INACTIVE:
5556 			case INDEXES:
5557 			case INITIAL_SIZE:
5558 			case INSERT_METHOD:
5559 			case INSTALL:
5560 			case INSTANCE:
5561 			case INVISIBLE:
5562 			case INVOKER:
5563 			case IO:
5564 			case IPC:
5565 			case ISOLATION:
5566 			case ISSUER:
5567 			case JSON:
5568 			case JSON_VALUE:
5569 			case KEY:
5570 			case KEY_BLOCK_SIZE:
5571 			case LANGUAGE:
5572 			case LAST:
5573 			case LAST_VALUE:
5574 			case LEAVES:
5575 			case LESS:
5576 			case LEVEL:
5577 			case LINESTRING:
5578 			case LIST:
5579 			case LOCAL:
5580 			case LOCKED:
5581 			case LOCKS:
5582 			case LOGFILE:
5583 			case LOGS:
5584 			case MASTER:
5585 			case MASTER_AUTO_POSITION:
5586 			case MASTER_COMPRESSION_ALGORITHM:
5587 			case MASTER_CONNECT_RETRY:
5588 			case MASTER_DELAY:
5589 			case MASTER_HEARTBEAT_PERIOD:
5590 			case MASTER_HOST:
5591 			case MASTER_LOG_FILE:
5592 			case MASTER_LOG_POS:
5593 			case MASTER_PASSWORD:
5594 			case MASTER_PORT:
5595 			case MASTER_PUBLIC_KEY_PATH:
5596 			case MASTER_RETRY_COUNT:
5597 			case MASTER_SERVER_ID:
5598 			case MASTER_SSL:
5599 			case MASTER_SSL_CA:
5600 			case MASTER_SSL_CAPATH:
5601 			case MASTER_SSL_CERT:
5602 			case MASTER_SSL_CIPHER:
5603 			case MASTER_SSL_CRL:
5604 			case MASTER_SSL_CRLPATH:
5605 			case MASTER_SSL_KEY:
5606 			case MASTER_TLS_CIPHERSUITES:
5607 			case MASTER_TLS_VERSION:
5608 			case MASTER_USER:
5609 			case MASTER_ZSTD_COMPRESSION_LEVEL:
5610 			case MAXVALUE:
5611 			case MAX_CONNECTIONS_PER_HOUR:
5612 			case MAX_QUERIES_PER_HOUR:
5613 			case MAX_ROWS:
5614 			case MAX_SIZE:
5615 			case MAX_UPDATES_PER_HOUR:
5616 			case MAX_USER_CONNECTIONS:
5617 			case MEDIUM:
5618 			case MEMBER:
5619 			case MEMORY:
5620 			case MERGE:
5621 			case MESSAGE_TEXT:
5622 			case MICROSECOND:
5623 			case MIGRATE:
5624 			case MINUTE:
5625 			case MIN_ROWS:
5626 			case MODE:
5627 			case MODIFY:
5628 			case MONTH:
5629 			case MULTILINESTRING:
5630 			case MULTIPOINT:
5631 			case MULTIPOLYGON:
5632 			case MUTEX:
5633 			case MYSQL_ERRNO:
5634 			case NAME:
5635 			case NAMES:
5636 			case NATIONAL:
5637 			case NCHAR:
5638 			case NDBCLUSTER:
5639 			case NESTED:
5640 			case NETWORK_NAMESPACE:
5641 			case NEVER:
5642 			case NEW:
5643 			case NEXT:
5644 			case NO:
5645 			case NODEGROUP:
5646 			case NONE:
5647 			case NOWAIT:
5648 			case NO_WAIT:
5649 			case NULLS:
5650 			case NUMBER:
5651 			case NVARCHAR:
5652 			case OFF:
5653 			case OFFSET:
5654 			case OJ:
5655 			case OLD:
5656 			case ONE:
5657 			case ONLY:
5658 			case OPEN:
5659 			case OPTIONAL:
5660 			case OPTIONS:
5661 			case ORDINALITY:
5662 			case ORGANIZATION:
5663 			case OTHERS:
5664 			case OWNER:
5665 			case PACK_KEYS:
5666 			case PAGE:
5667 			case PARSER:
5668 			case PARTIAL:
5669 			case PARTITIONING:
5670 			case PARTITIONS:
5671 			case PASSWORD:
5672 			case PASSWORD_LOCK_TIME:
5673 			case PATH:
5674 			case PERSIST:
5675 			case PERSIST_ONLY:
5676 			case PHASE:
5677 			case PLUGIN:
5678 			case PLUGINS:
5679 			case PLUGIN_DIR:
5680 			case POINT:
5681 			case POLYGON:
5682 			case PORT:
5683 			case PRECEDES:
5684 			case PRECEDING:
5685 			case PREPARE:
5686 			case PRESERVE:
5687 			case PREV:
5688 			case PRIMARY:
5689 			case PRIVILEGES:
5690 			case PRIVILEGE_CHECKS_USER:
5691 			case PROCESS:
5692 			case PROCESSLIST:
5693 			case PROFILE:
5694 			case PROFILES:
5695 			case PROXY:
5696 			case QUARTER:
5697 			case QUERY:
5698 			case QUICK:
5699 			case RANDOM:
5700 			case READ_ONLY:
5701 			case REBUILD:
5702 			case RECOVER:
5703 			case REDO_BUFFER_SIZE:
5704 			case REDUNDANT:
5705 			case REFERENCE:
5706 			case RELAY:
5707 			case RELAYLOG:
5708 			case RELAY_LOG_FILE:
5709 			case RELAY_LOG_POS:
5710 			case RELAY_THREAD:
5711 			case RELOAD:
5712 			case REMOVE:
5713 			case REORGANIZE:
5714 			case REPAIR:
5715 			case REPEATABLE:
5716 			case REPLICATE_DO_DB:
5717 			case REPLICATE_DO_TABLE:
5718 			case REPLICATE_IGNORE_DB:
5719 			case REPLICATE_IGNORE_TABLE:
5720 			case REPLICATE_REWRITE_DB:
5721 			case REPLICATE_WILD_DO_TABLE:
5722 			case REPLICATE_WILD_IGNORE_TABLE:
5723 			case REPLICATION:
5724 			case REQUIRE_ROW_FORMAT:
5725 			case RESET:
5726 			case RESOURCE:
5727 			case RESPECT:
5728 			case RESTART:
5729 			case RESTORE:
5730 			case RESUME:
5731 			case RETAIN:
5732 			case RETURNED_SQLSTATE:
5733 			case RETURNING:
5734 			case RETURNS:
5735 			case REUSE:
5736 			case REVERSE:
5737 			case ROLE:
5738 			case ROLLBACK:
5739 			case ROLLUP:
5740 			case ROTATE:
5741 			case ROUTINE:
5742 			case ROW_COUNT:
5743 			case ROW_FORMAT:
5744 			case RTREE:
5745 			case SAVEPOINT:
5746 			case SCHEDULE:
5747 			case SCHEMA_NAME:
5748 			case SECOND:
5749 			case SECONDARY:
5750 			case SECONDARY_ENGINE:
5751 			case SECONDARY_ENGINE_ATTRIBUTE:
5752 			case SECONDARY_LOAD:
5753 			case SECONDARY_UNLOAD:
5754 			case SECURITY:
5755 			case SERIAL:
5756 			case SERIALIZABLE:
5757 			case SERVER:
5758 			case SESSION:
5759 			case SHARE:
5760 			case SHUTDOWN:
5761 			case SIGNED:
5762 			case SIMPLE:
5763 			case SLAVE:
5764 			case SLOW:
5765 			case SNAPSHOT:
5766 			case SOCKET:
5767 			case SONAME:
5768 			case SOUNDS:
5769 			case SOURCE:
5770 			case SQL_AFTER_GTIDS:
5771 			case SQL_AFTER_MTS_GAPS:
5772 			case SQL_BEFORE_GTIDS:
5773 			case SQL_BUFFER_RESULT:
5774 			case SQL_NO_CACHE:
5775 			case SQL_THREAD:
5776 			case SRID:
5777 			case STACKED:
5778 			case START:
5779 			case STARTS:
5780 			case STATS_AUTO_RECALC:
5781 			case STATS_PERSISTENT:
5782 			case STATS_SAMPLE_PAGES:
5783 			case STATUS:
5784 			case STOP:
5785 			case STORAGE:
5786 			case STREAM:
5787 			case STRING:
5788 			case SUBCLASS_ORIGIN:
5789 			case SUBJECT:
5790 			case SUBPARTITION:
5791 			case SUBPARTITIONS:
5792 			case SUPER:
5793 			case SUSPEND:
5794 			case SWAPS:
5795 			case SWITCHES:
5796 			case SYSTEM:
5797 			case TABLE:
5798 			case TABLES:
5799 			case TABLESPACE:
5800 			case TABLE_CHECKSUM:
5801 			case TABLE_NAME:
5802 			case TEMPORARY:
5803 			case TEMPTABLE:
5804 			case TEXT:
5805 			case THAN:
5806 			case THREAD_PRIORITY:
5807 			case TIES:
5808 			case TIME:
5809 			case TIMESTAMP:
5810 			case TIMESTAMP_ADD:
5811 			case TIMESTAMP_DIFF:
5812 			case TLS:
5813 			case TRANSACTION:
5814 			case TRIGGERS:
5815 			case TRUNCATE:
5816 			case TYPE:
5817 			case TYPES:
5818 			case UNBOUNDED:
5819 			case UNCOMMITTED:
5820 			case UNDEFINED:
5821 			case UNDOFILE:
5822 			case UNDO_BUFFER_SIZE:
5823 			case UNICODE:
5824 			case UNINSTALL:
5825 			case UNKNOWN:
5826 			case UNTIL:
5827 			case UPGRADE:
5828 			case USER:
5829 			case USER_RESOURCES:
5830 			case USE_FRM:
5831 			case UTC_DATE:
5832 			case UTC_TIME:
5833 			case UTC_TIMESTAMP:
5834 			case VALIDATION:
5835 			case VALUE:
5836 			case VARIABLES:
5837 			case VCPU:
5838 			case VIEW:
5839 			case VISIBLE:
5840 			case WAIT:
5841 			case WARNINGS:
5842 			case WEEK:
5843 			case WEIGHT_STRING:
5844 			case WITHOUT:
5845 			case WORK:
5846 			case WRAPPER:
5847 			case X509:
5848 			case XA:
5849 			case XID:
5850 			case XML:
5851 			case YEAR:
5852 			case YEAR_MONTH:
5853 			case DOUBLE_QUOTED_TEXT:
5854 			case BQUOTA_STRING:
5855 			case UNDERSCORE_CHARSET:
5856 			case IDENTIFIER_:
5857 				{
5858 				setState(943);
5859 				tableFactor();
5860 				}
5861 				break;
5862 			case LBE_:
5863 				{
5864 				setState(944);
5865 				match(LBE_);
5866 				setState(945);
5867 				match(OJ);
5868 				setState(946);
5869 				escapedTableReference();
5870 				setState(947);
5871 				match(RBE_);
5872 				}
5873 				break;
5874 			default:
5875 				throw new NoViableAltException(this);
5876 			}
5877 			setState(954);
5878 			_errHandler.sync(this);
5879 			_alt = getInterpreter().adaptivePredict(_input,87,_ctx);
5880 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
5881 				if ( _alt==1 ) {
5882 					{
5883 					{
5884 					setState(951);
5885 					joinedTable();
5886 					}
5887 					} 
5888 				}
5889 				setState(956);
5890 				_errHandler.sync(this);
5891 				_alt = getInterpreter().adaptivePredict(_input,87,_ctx);
5892 			}
5893 			}
5894 		}
5895 		catch (RecognitionException re) {
5896 			_localctx.exception = re;
5897 			_errHandler.reportError(this, re);
5898 			_errHandler.recover(this, re);
5899 		}
5900 		finally {
5901 			exitRule();
5902 		}
5903 		return _localctx;
5904 	}
5905 
5906 	public static class TableFactorContext extends ParserRuleContext {
5907 		public TableNameContext tableName() {
5908 			return getRuleContext(TableNameContext.class,0);
5909 		}
5910 		public PartitionNamesContext partitionNames() {
5911 			return getRuleContext(PartitionNamesContext.class,0);
5912 		}
5913 		public AliasContext alias() {
5914 			return getRuleContext(AliasContext.class,0);
5915 		}
5916 		public IndexHintListContext indexHintList() {
5917 			return getRuleContext(IndexHintListContext.class,0);
5918 		}
5919 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
5920 		public SubqueryContext subquery() {
5921 			return getRuleContext(SubqueryContext.class,0);
5922 		}
5923 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
5924 		public ColumnNamesContext columnNames() {
5925 			return getRuleContext(ColumnNamesContext.class,0);
5926 		}
5927 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
5928 		public TableReferencesContext tableReferences() {
5929 			return getRuleContext(TableReferencesContext.class,0);
5930 		}
5931 		public TableFactorContext(ParserRuleContext parent, int invokingState) {
5932 			super(parent, invokingState);
5933 		}
5934 		@Override public int getRuleIndex() { return RULE_tableFactor; }
5935 		@Override
5936 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
5937 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableFactor(this);
5938 			else return visitor.visitChildren(this);
5939 		}
5940 	}
5941 
5942 	public final TableFactorContext tableFactor() throws RecognitionException {
5943 		TableFactorContext _localctx = new TableFactorContext(_ctx, getState());
5944 		enterRule(_localctx, 90, RULE_tableFactor);
5945 		int _la;
5946 		try {
5947 			setState(985);
5948 			_errHandler.sync(this);
5949 			switch ( getInterpreter().adaptivePredict(_input,94,_ctx) ) {
5950 			case 1:
5951 				enterOuterAlt(_localctx, 1);
5952 				{
5953 				setState(957);
5954 				tableName();
5955 				setState(959);
5956 				_errHandler.sync(this);
5957 				switch ( getInterpreter().adaptivePredict(_input,88,_ctx) ) {
5958 				case 1:
5959 					{
5960 					setState(958);
5961 					partitionNames();
5962 					}
5963 					break;
5964 				}
5965 				setState(965);
5966 				_errHandler.sync(this);
5967 				switch ( getInterpreter().adaptivePredict(_input,90,_ctx) ) {
5968 				case 1:
5969 					{
5970 					setState(962);
5971 					_errHandler.sync(this);
5972 					_la = _input.LA(1);
5973 					if (_la==AS) {
5974 						{
5975 						setState(961);
5976 						match(AS);
5977 						}
5978 					}
5979 
5980 					setState(964);
5981 					alias();
5982 					}
5983 					break;
5984 				}
5985 				setState(968);
5986 				_errHandler.sync(this);
5987 				switch ( getInterpreter().adaptivePredict(_input,91,_ctx) ) {
5988 				case 1:
5989 					{
5990 					setState(967);
5991 					indexHintList();
5992 					}
5993 					break;
5994 				}
5995 				}
5996 				break;
5997 			case 2:
5998 				enterOuterAlt(_localctx, 2);
5999 				{
6000 				setState(970);
6001 				subquery();
6002 				setState(972);
6003 				_errHandler.sync(this);
6004 				_la = _input.LA(1);
6005 				if (_la==AS) {
6006 					{
6007 					setState(971);
6008 					match(AS);
6009 					}
6010 				}
6011 
6012 				setState(974);
6013 				alias();
6014 				setState(979);
6015 				_errHandler.sync(this);
6016 				switch ( getInterpreter().adaptivePredict(_input,93,_ctx) ) {
6017 				case 1:
6018 					{
6019 					setState(975);
6020 					match(LP_);
6021 					setState(976);
6022 					columnNames();
6023 					setState(977);
6024 					match(RP_);
6025 					}
6026 					break;
6027 				}
6028 				}
6029 				break;
6030 			case 3:
6031 				enterOuterAlt(_localctx, 3);
6032 				{
6033 				setState(981);
6034 				match(LP_);
6035 				setState(982);
6036 				tableReferences();
6037 				setState(983);
6038 				match(RP_);
6039 				}
6040 				break;
6041 			}
6042 		}
6043 		catch (RecognitionException re) {
6044 			_localctx.exception = re;
6045 			_errHandler.reportError(this, re);
6046 			_errHandler.recover(this, re);
6047 		}
6048 		finally {
6049 			exitRule();
6050 		}
6051 		return _localctx;
6052 	}
6053 
6054 	public static class PartitionNamesContext extends ParserRuleContext {
6055 		public TerminalNode PARTITION() { return getToken(HiveStatementParser.PARTITION, 0); }
6056 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
6057 		public List<IdentifierContext> identifier() {
6058 			return getRuleContexts(IdentifierContext.class);
6059 		}
6060 		public IdentifierContext identifier(int i) {
6061 			return getRuleContext(IdentifierContext.class,i);
6062 		}
6063 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
6064 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
6065 		public TerminalNode COMMA_(int i) {
6066 			return getToken(HiveStatementParser.COMMA_, i);
6067 		}
6068 		public PartitionNamesContext(ParserRuleContext parent, int invokingState) {
6069 			super(parent, invokingState);
6070 		}
6071 		@Override public int getRuleIndex() { return RULE_partitionNames; }
6072 		@Override
6073 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6074 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPartitionNames(this);
6075 			else return visitor.visitChildren(this);
6076 		}
6077 	}
6078 
6079 	public final PartitionNamesContext partitionNames() throws RecognitionException {
6080 		PartitionNamesContext _localctx = new PartitionNamesContext(_ctx, getState());
6081 		enterRule(_localctx, 92, RULE_partitionNames);
6082 		int _la;
6083 		try {
6084 			enterOuterAlt(_localctx, 1);
6085 			{
6086 			setState(987);
6087 			match(PARTITION);
6088 			setState(988);
6089 			match(LP_);
6090 			setState(989);
6091 			identifier();
6092 			setState(994);
6093 			_errHandler.sync(this);
6094 			_la = _input.LA(1);
6095 			while (_la==COMMA_) {
6096 				{
6097 				{
6098 				setState(990);
6099 				match(COMMA_);
6100 				setState(991);
6101 				identifier();
6102 				}
6103 				}
6104 				setState(996);
6105 				_errHandler.sync(this);
6106 				_la = _input.LA(1);
6107 			}
6108 			setState(997);
6109 			match(RP_);
6110 			}
6111 		}
6112 		catch (RecognitionException re) {
6113 			_localctx.exception = re;
6114 			_errHandler.reportError(this, re);
6115 			_errHandler.recover(this, re);
6116 		}
6117 		finally {
6118 			exitRule();
6119 		}
6120 		return _localctx;
6121 	}
6122 
6123 	public static class IndexHintListContext extends ParserRuleContext {
6124 		public List<IndexHintContext> indexHint() {
6125 			return getRuleContexts(IndexHintContext.class);
6126 		}
6127 		public IndexHintContext indexHint(int i) {
6128 			return getRuleContext(IndexHintContext.class,i);
6129 		}
6130 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
6131 		public TerminalNode COMMA_(int i) {
6132 			return getToken(HiveStatementParser.COMMA_, i);
6133 		}
6134 		public IndexHintListContext(ParserRuleContext parent, int invokingState) {
6135 			super(parent, invokingState);
6136 		}
6137 		@Override public int getRuleIndex() { return RULE_indexHintList; }
6138 		@Override
6139 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6140 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIndexHintList(this);
6141 			else return visitor.visitChildren(this);
6142 		}
6143 	}
6144 
6145 	public final IndexHintListContext indexHintList() throws RecognitionException {
6146 		IndexHintListContext _localctx = new IndexHintListContext(_ctx, getState());
6147 		enterRule(_localctx, 94, RULE_indexHintList);
6148 		try {
6149 			int _alt;
6150 			enterOuterAlt(_localctx, 1);
6151 			{
6152 			setState(999);
6153 			indexHint();
6154 			setState(1004);
6155 			_errHandler.sync(this);
6156 			_alt = getInterpreter().adaptivePredict(_input,96,_ctx);
6157 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
6158 				if ( _alt==1 ) {
6159 					{
6160 					{
6161 					setState(1000);
6162 					match(COMMA_);
6163 					setState(1001);
6164 					indexHint();
6165 					}
6166 					} 
6167 				}
6168 				setState(1006);
6169 				_errHandler.sync(this);
6170 				_alt = getInterpreter().adaptivePredict(_input,96,_ctx);
6171 			}
6172 			}
6173 		}
6174 		catch (RecognitionException re) {
6175 			_localctx.exception = re;
6176 			_errHandler.reportError(this, re);
6177 			_errHandler.recover(this, re);
6178 		}
6179 		finally {
6180 			exitRule();
6181 		}
6182 		return _localctx;
6183 	}
6184 
6185 	public static class IndexHintContext extends ParserRuleContext {
6186 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
6187 		public List<IndexNameContext> indexName() {
6188 			return getRuleContexts(IndexNameContext.class);
6189 		}
6190 		public IndexNameContext indexName(int i) {
6191 			return getRuleContext(IndexNameContext.class,i);
6192 		}
6193 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
6194 		public TerminalNode USE() { return getToken(HiveStatementParser.USE, 0); }
6195 		public TerminalNode IGNORE() { return getToken(HiveStatementParser.IGNORE, 0); }
6196 		public TerminalNode FORCE() { return getToken(HiveStatementParser.FORCE, 0); }
6197 		public TerminalNode INDEX() { return getToken(HiveStatementParser.INDEX, 0); }
6198 		public TerminalNode KEY() { return getToken(HiveStatementParser.KEY, 0); }
6199 		public TerminalNode FOR() { return getToken(HiveStatementParser.FOR, 0); }
6200 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
6201 		public TerminalNode COMMA_(int i) {
6202 			return getToken(HiveStatementParser.COMMA_, i);
6203 		}
6204 		public TerminalNode JOIN() { return getToken(HiveStatementParser.JOIN, 0); }
6205 		public TerminalNode ORDER() { return getToken(HiveStatementParser.ORDER, 0); }
6206 		public TerminalNode BY() { return getToken(HiveStatementParser.BY, 0); }
6207 		public TerminalNode GROUP() { return getToken(HiveStatementParser.GROUP, 0); }
6208 		public IndexHintContext(ParserRuleContext parent, int invokingState) {
6209 			super(parent, invokingState);
6210 		}
6211 		@Override public int getRuleIndex() { return RULE_indexHint; }
6212 		@Override
6213 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6214 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIndexHint(this);
6215 			else return visitor.visitChildren(this);
6216 		}
6217 	}
6218 
6219 	public final IndexHintContext indexHint() throws RecognitionException {
6220 		IndexHintContext _localctx = new IndexHintContext(_ctx, getState());
6221 		enterRule(_localctx, 96, RULE_indexHint);
6222 		int _la;
6223 		try {
6224 			enterOuterAlt(_localctx, 1);
6225 			{
6226 			setState(1007);
6227 			_la = _input.LA(1);
6228 			if ( !(_la==FORCE || _la==IGNORE || _la==USE) ) {
6229 			_errHandler.recoverInline(this);
6230 			}
6231 			else {
6232 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
6233 				_errHandler.reportMatch(this);
6234 				consume();
6235 			}
6236 			setState(1008);
6237 			_la = _input.LA(1);
6238 			if ( !(_la==INDEX || _la==KEY) ) {
6239 			_errHandler.recoverInline(this);
6240 			}
6241 			else {
6242 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
6243 				_errHandler.reportMatch(this);
6244 				consume();
6245 			}
6246 			setState(1017);
6247 			_errHandler.sync(this);
6248 			_la = _input.LA(1);
6249 			if (_la==FOR) {
6250 				{
6251 				setState(1009);
6252 				match(FOR);
6253 				setState(1015);
6254 				_errHandler.sync(this);
6255 				switch (_input.LA(1)) {
6256 				case JOIN:
6257 					{
6258 					setState(1010);
6259 					match(JOIN);
6260 					}
6261 					break;
6262 				case ORDER:
6263 					{
6264 					setState(1011);
6265 					match(ORDER);
6266 					setState(1012);
6267 					match(BY);
6268 					}
6269 					break;
6270 				case GROUP:
6271 					{
6272 					setState(1013);
6273 					match(GROUP);
6274 					setState(1014);
6275 					match(BY);
6276 					}
6277 					break;
6278 				default:
6279 					throw new NoViableAltException(this);
6280 				}
6281 				}
6282 			}
6283 
6284 			setState(1019);
6285 			match(LP_);
6286 			setState(1020);
6287 			indexName();
6288 			setState(1025);
6289 			_errHandler.sync(this);
6290 			_la = _input.LA(1);
6291 			while (_la==COMMA_) {
6292 				{
6293 				{
6294 				setState(1021);
6295 				match(COMMA_);
6296 				setState(1022);
6297 				indexName();
6298 				}
6299 				}
6300 				setState(1027);
6301 				_errHandler.sync(this);
6302 				_la = _input.LA(1);
6303 			}
6304 			setState(1028);
6305 			match(RP_);
6306 			}
6307 		}
6308 		catch (RecognitionException re) {
6309 			_localctx.exception = re;
6310 			_errHandler.reportError(this, re);
6311 			_errHandler.recover(this, re);
6312 		}
6313 		finally {
6314 			exitRule();
6315 		}
6316 		return _localctx;
6317 	}
6318 
6319 	public static class JoinedTableContext extends ParserRuleContext {
6320 		public InnerJoinTypeContext innerJoinType() {
6321 			return getRuleContext(InnerJoinTypeContext.class,0);
6322 		}
6323 		public TableReferenceContext tableReference() {
6324 			return getRuleContext(TableReferenceContext.class,0);
6325 		}
6326 		public JoinSpecificationContext joinSpecification() {
6327 			return getRuleContext(JoinSpecificationContext.class,0);
6328 		}
6329 		public OuterJoinTypeContext outerJoinType() {
6330 			return getRuleContext(OuterJoinTypeContext.class,0);
6331 		}
6332 		public NaturalJoinTypeContext naturalJoinType() {
6333 			return getRuleContext(NaturalJoinTypeContext.class,0);
6334 		}
6335 		public TableFactorContext tableFactor() {
6336 			return getRuleContext(TableFactorContext.class,0);
6337 		}
6338 		public JoinedTableContext(ParserRuleContext parent, int invokingState) {
6339 			super(parent, invokingState);
6340 		}
6341 		@Override public int getRuleIndex() { return RULE_joinedTable; }
6342 		@Override
6343 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6344 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitJoinedTable(this);
6345 			else return visitor.visitChildren(this);
6346 		}
6347 	}
6348 
6349 	public final JoinedTableContext joinedTable() throws RecognitionException {
6350 		JoinedTableContext _localctx = new JoinedTableContext(_ctx, getState());
6351 		enterRule(_localctx, 98, RULE_joinedTable);
6352 		try {
6353 			setState(1042);
6354 			_errHandler.sync(this);
6355 			switch (_input.LA(1)) {
6356 			case CROSS:
6357 			case INNER:
6358 			case JOIN:
6359 			case STRAIGHT_JOIN:
6360 				enterOuterAlt(_localctx, 1);
6361 				{
6362 				setState(1030);
6363 				innerJoinType();
6364 				setState(1031);
6365 				tableReference();
6366 				setState(1033);
6367 				_errHandler.sync(this);
6368 				switch ( getInterpreter().adaptivePredict(_input,100,_ctx) ) {
6369 				case 1:
6370 					{
6371 					setState(1032);
6372 					joinSpecification();
6373 					}
6374 					break;
6375 				}
6376 				}
6377 				break;
6378 			case LEFT:
6379 			case RIGHT:
6380 				enterOuterAlt(_localctx, 2);
6381 				{
6382 				setState(1035);
6383 				outerJoinType();
6384 				setState(1036);
6385 				tableReference();
6386 				setState(1037);
6387 				joinSpecification();
6388 				}
6389 				break;
6390 			case NATURAL:
6391 				enterOuterAlt(_localctx, 3);
6392 				{
6393 				setState(1039);
6394 				naturalJoinType();
6395 				setState(1040);
6396 				tableFactor();
6397 				}
6398 				break;
6399 			default:
6400 				throw new NoViableAltException(this);
6401 			}
6402 		}
6403 		catch (RecognitionException re) {
6404 			_localctx.exception = re;
6405 			_errHandler.reportError(this, re);
6406 			_errHandler.recover(this, re);
6407 		}
6408 		finally {
6409 			exitRule();
6410 		}
6411 		return _localctx;
6412 	}
6413 
6414 	public static class InnerJoinTypeContext extends ParserRuleContext {
6415 		public TerminalNode JOIN() { return getToken(HiveStatementParser.JOIN, 0); }
6416 		public TerminalNode INNER() { return getToken(HiveStatementParser.INNER, 0); }
6417 		public TerminalNode CROSS() { return getToken(HiveStatementParser.CROSS, 0); }
6418 		public TerminalNode STRAIGHT_JOIN() { return getToken(HiveStatementParser.STRAIGHT_JOIN, 0); }
6419 		public InnerJoinTypeContext(ParserRuleContext parent, int invokingState) {
6420 			super(parent, invokingState);
6421 		}
6422 		@Override public int getRuleIndex() { return RULE_innerJoinType; }
6423 		@Override
6424 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6425 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitInnerJoinType(this);
6426 			else return visitor.visitChildren(this);
6427 		}
6428 	}
6429 
6430 	public final InnerJoinTypeContext innerJoinType() throws RecognitionException {
6431 		InnerJoinTypeContext _localctx = new InnerJoinTypeContext(_ctx, getState());
6432 		enterRule(_localctx, 100, RULE_innerJoinType);
6433 		int _la;
6434 		try {
6435 			setState(1049);
6436 			_errHandler.sync(this);
6437 			switch (_input.LA(1)) {
6438 			case CROSS:
6439 			case INNER:
6440 			case JOIN:
6441 				enterOuterAlt(_localctx, 1);
6442 				{
6443 				setState(1045);
6444 				_errHandler.sync(this);
6445 				_la = _input.LA(1);
6446 				if (_la==CROSS || _la==INNER) {
6447 					{
6448 					setState(1044);
6449 					_la = _input.LA(1);
6450 					if ( !(_la==CROSS || _la==INNER) ) {
6451 					_errHandler.recoverInline(this);
6452 					}
6453 					else {
6454 						if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
6455 						_errHandler.reportMatch(this);
6456 						consume();
6457 					}
6458 					}
6459 				}
6460 
6461 				setState(1047);
6462 				match(JOIN);
6463 				}
6464 				break;
6465 			case STRAIGHT_JOIN:
6466 				enterOuterAlt(_localctx, 2);
6467 				{
6468 				setState(1048);
6469 				match(STRAIGHT_JOIN);
6470 				}
6471 				break;
6472 			default:
6473 				throw new NoViableAltException(this);
6474 			}
6475 		}
6476 		catch (RecognitionException re) {
6477 			_localctx.exception = re;
6478 			_errHandler.reportError(this, re);
6479 			_errHandler.recover(this, re);
6480 		}
6481 		finally {
6482 			exitRule();
6483 		}
6484 		return _localctx;
6485 	}
6486 
6487 	public static class OuterJoinTypeContext extends ParserRuleContext {
6488 		public TerminalNode JOIN() { return getToken(HiveStatementParser.JOIN, 0); }
6489 		public TerminalNode LEFT() { return getToken(HiveStatementParser.LEFT, 0); }
6490 		public TerminalNode RIGHT() { return getToken(HiveStatementParser.RIGHT, 0); }
6491 		public TerminalNode OUTER() { return getToken(HiveStatementParser.OUTER, 0); }
6492 		public OuterJoinTypeContext(ParserRuleContext parent, int invokingState) {
6493 			super(parent, invokingState);
6494 		}
6495 		@Override public int getRuleIndex() { return RULE_outerJoinType; }
6496 		@Override
6497 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6498 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOuterJoinType(this);
6499 			else return visitor.visitChildren(this);
6500 		}
6501 	}
6502 
6503 	public final OuterJoinTypeContext outerJoinType() throws RecognitionException {
6504 		OuterJoinTypeContext _localctx = new OuterJoinTypeContext(_ctx, getState());
6505 		enterRule(_localctx, 102, RULE_outerJoinType);
6506 		int _la;
6507 		try {
6508 			enterOuterAlt(_localctx, 1);
6509 			{
6510 			setState(1051);
6511 			_la = _input.LA(1);
6512 			if ( !(_la==LEFT || _la==RIGHT) ) {
6513 			_errHandler.recoverInline(this);
6514 			}
6515 			else {
6516 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
6517 				_errHandler.reportMatch(this);
6518 				consume();
6519 			}
6520 			setState(1053);
6521 			_errHandler.sync(this);
6522 			_la = _input.LA(1);
6523 			if (_la==OUTER) {
6524 				{
6525 				setState(1052);
6526 				match(OUTER);
6527 				}
6528 			}
6529 
6530 			setState(1055);
6531 			match(JOIN);
6532 			}
6533 		}
6534 		catch (RecognitionException re) {
6535 			_localctx.exception = re;
6536 			_errHandler.reportError(this, re);
6537 			_errHandler.recover(this, re);
6538 		}
6539 		finally {
6540 			exitRule();
6541 		}
6542 		return _localctx;
6543 	}
6544 
6545 	public static class NaturalJoinTypeContext extends ParserRuleContext {
6546 		public TerminalNode NATURAL() { return getToken(HiveStatementParser.NATURAL, 0); }
6547 		public TerminalNode JOIN() { return getToken(HiveStatementParser.JOIN, 0); }
6548 		public TerminalNode INNER() { return getToken(HiveStatementParser.INNER, 0); }
6549 		public TerminalNode LEFT() { return getToken(HiveStatementParser.LEFT, 0); }
6550 		public TerminalNode RIGHT() { return getToken(HiveStatementParser.RIGHT, 0); }
6551 		public TerminalNode OUTER() { return getToken(HiveStatementParser.OUTER, 0); }
6552 		public NaturalJoinTypeContext(ParserRuleContext parent, int invokingState) {
6553 			super(parent, invokingState);
6554 		}
6555 		@Override public int getRuleIndex() { return RULE_naturalJoinType; }
6556 		@Override
6557 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6558 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNaturalJoinType(this);
6559 			else return visitor.visitChildren(this);
6560 		}
6561 	}
6562 
6563 	public final NaturalJoinTypeContext naturalJoinType() throws RecognitionException {
6564 		NaturalJoinTypeContext _localctx = new NaturalJoinTypeContext(_ctx, getState());
6565 		enterRule(_localctx, 104, RULE_naturalJoinType);
6566 		int _la;
6567 		try {
6568 			setState(1068);
6569 			_errHandler.sync(this);
6570 			switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) {
6571 			case 1:
6572 				enterOuterAlt(_localctx, 1);
6573 				{
6574 				setState(1057);
6575 				match(NATURAL);
6576 				setState(1059);
6577 				_errHandler.sync(this);
6578 				_la = _input.LA(1);
6579 				if (_la==INNER) {
6580 					{
6581 					setState(1058);
6582 					match(INNER);
6583 					}
6584 				}
6585 
6586 				setState(1061);
6587 				match(JOIN);
6588 				}
6589 				break;
6590 			case 2:
6591 				enterOuterAlt(_localctx, 2);
6592 				{
6593 				setState(1062);
6594 				match(NATURAL);
6595 				setState(1063);
6596 				_la = _input.LA(1);
6597 				if ( !(_la==LEFT || _la==RIGHT) ) {
6598 				_errHandler.recoverInline(this);
6599 				}
6600 				else {
6601 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
6602 					_errHandler.reportMatch(this);
6603 					consume();
6604 				}
6605 				setState(1065);
6606 				_errHandler.sync(this);
6607 				_la = _input.LA(1);
6608 				if (_la==OUTER) {
6609 					{
6610 					setState(1064);
6611 					match(OUTER);
6612 					}
6613 				}
6614 
6615 				setState(1067);
6616 				match(JOIN);
6617 				}
6618 				break;
6619 			}
6620 		}
6621 		catch (RecognitionException re) {
6622 			_localctx.exception = re;
6623 			_errHandler.reportError(this, re);
6624 			_errHandler.recover(this, re);
6625 		}
6626 		finally {
6627 			exitRule();
6628 		}
6629 		return _localctx;
6630 	}
6631 
6632 	public static class JoinSpecificationContext extends ParserRuleContext {
6633 		public TerminalNode ON() { return getToken(HiveStatementParser.ON, 0); }
6634 		public ExprContext expr() {
6635 			return getRuleContext(ExprContext.class,0);
6636 		}
6637 		public TerminalNode USING() { return getToken(HiveStatementParser.USING, 0); }
6638 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
6639 		public ColumnNamesContext columnNames() {
6640 			return getRuleContext(ColumnNamesContext.class,0);
6641 		}
6642 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
6643 		public JoinSpecificationContext(ParserRuleContext parent, int invokingState) {
6644 			super(parent, invokingState);
6645 		}
6646 		@Override public int getRuleIndex() { return RULE_joinSpecification; }
6647 		@Override
6648 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6649 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitJoinSpecification(this);
6650 			else return visitor.visitChildren(this);
6651 		}
6652 	}
6653 
6654 	public final JoinSpecificationContext joinSpecification() throws RecognitionException {
6655 		JoinSpecificationContext _localctx = new JoinSpecificationContext(_ctx, getState());
6656 		enterRule(_localctx, 106, RULE_joinSpecification);
6657 		try {
6658 			setState(1077);
6659 			_errHandler.sync(this);
6660 			switch (_input.LA(1)) {
6661 			case ON:
6662 				enterOuterAlt(_localctx, 1);
6663 				{
6664 				setState(1070);
6665 				match(ON);
6666 				setState(1071);
6667 				expr(0);
6668 				}
6669 				break;
6670 			case USING:
6671 				enterOuterAlt(_localctx, 2);
6672 				{
6673 				setState(1072);
6674 				match(USING);
6675 				setState(1073);
6676 				match(LP_);
6677 				setState(1074);
6678 				columnNames();
6679 				setState(1075);
6680 				match(RP_);
6681 				}
6682 				break;
6683 			default:
6684 				throw new NoViableAltException(this);
6685 			}
6686 		}
6687 		catch (RecognitionException re) {
6688 			_localctx.exception = re;
6689 			_errHandler.reportError(this, re);
6690 			_errHandler.recover(this, re);
6691 		}
6692 		finally {
6693 			exitRule();
6694 		}
6695 		return _localctx;
6696 	}
6697 
6698 	public static class WhereClauseContext extends ParserRuleContext {
6699 		public TerminalNode WHERE() { return getToken(HiveStatementParser.WHERE, 0); }
6700 		public ExprContext expr() {
6701 			return getRuleContext(ExprContext.class,0);
6702 		}
6703 		public WhereClauseContext(ParserRuleContext parent, int invokingState) {
6704 			super(parent, invokingState);
6705 		}
6706 		@Override public int getRuleIndex() { return RULE_whereClause; }
6707 		@Override
6708 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6709 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWhereClause(this);
6710 			else return visitor.visitChildren(this);
6711 		}
6712 	}
6713 
6714 	public final WhereClauseContext whereClause() throws RecognitionException {
6715 		WhereClauseContext _localctx = new WhereClauseContext(_ctx, getState());
6716 		enterRule(_localctx, 108, RULE_whereClause);
6717 		try {
6718 			enterOuterAlt(_localctx, 1);
6719 			{
6720 			setState(1079);
6721 			match(WHERE);
6722 			setState(1080);
6723 			expr(0);
6724 			}
6725 		}
6726 		catch (RecognitionException re) {
6727 			_localctx.exception = re;
6728 			_errHandler.reportError(this, re);
6729 			_errHandler.recover(this, re);
6730 		}
6731 		finally {
6732 			exitRule();
6733 		}
6734 		return _localctx;
6735 	}
6736 
6737 	public static class GroupByClauseContext extends ParserRuleContext {
6738 		public TerminalNode GROUP() { return getToken(HiveStatementParser.GROUP, 0); }
6739 		public TerminalNode BY() { return getToken(HiveStatementParser.BY, 0); }
6740 		public List<OrderByItemContext> orderByItem() {
6741 			return getRuleContexts(OrderByItemContext.class);
6742 		}
6743 		public OrderByItemContext orderByItem(int i) {
6744 			return getRuleContext(OrderByItemContext.class,i);
6745 		}
6746 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
6747 		public TerminalNode COMMA_(int i) {
6748 			return getToken(HiveStatementParser.COMMA_, i);
6749 		}
6750 		public TerminalNode WITH() { return getToken(HiveStatementParser.WITH, 0); }
6751 		public TerminalNode ROLLUP() { return getToken(HiveStatementParser.ROLLUP, 0); }
6752 		public GroupByClauseContext(ParserRuleContext parent, int invokingState) {
6753 			super(parent, invokingState);
6754 		}
6755 		@Override public int getRuleIndex() { return RULE_groupByClause; }
6756 		@Override
6757 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6758 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitGroupByClause(this);
6759 			else return visitor.visitChildren(this);
6760 		}
6761 	}
6762 
6763 	public final GroupByClauseContext groupByClause() throws RecognitionException {
6764 		GroupByClauseContext _localctx = new GroupByClauseContext(_ctx, getState());
6765 		enterRule(_localctx, 110, RULE_groupByClause);
6766 		try {
6767 			int _alt;
6768 			enterOuterAlt(_localctx, 1);
6769 			{
6770 			setState(1082);
6771 			match(GROUP);
6772 			setState(1083);
6773 			match(BY);
6774 			setState(1084);
6775 			orderByItem();
6776 			setState(1089);
6777 			_errHandler.sync(this);
6778 			_alt = getInterpreter().adaptivePredict(_input,109,_ctx);
6779 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
6780 				if ( _alt==1 ) {
6781 					{
6782 					{
6783 					setState(1085);
6784 					match(COMMA_);
6785 					setState(1086);
6786 					orderByItem();
6787 					}
6788 					} 
6789 				}
6790 				setState(1091);
6791 				_errHandler.sync(this);
6792 				_alt = getInterpreter().adaptivePredict(_input,109,_ctx);
6793 			}
6794 			setState(1094);
6795 			_errHandler.sync(this);
6796 			switch ( getInterpreter().adaptivePredict(_input,110,_ctx) ) {
6797 			case 1:
6798 				{
6799 				setState(1092);
6800 				match(WITH);
6801 				setState(1093);
6802 				match(ROLLUP);
6803 				}
6804 				break;
6805 			}
6806 			}
6807 		}
6808 		catch (RecognitionException re) {
6809 			_localctx.exception = re;
6810 			_errHandler.reportError(this, re);
6811 			_errHandler.recover(this, re);
6812 		}
6813 		finally {
6814 			exitRule();
6815 		}
6816 		return _localctx;
6817 	}
6818 
6819 	public static class HavingClauseContext extends ParserRuleContext {
6820 		public TerminalNode HAVING() { return getToken(HiveStatementParser.HAVING, 0); }
6821 		public ExprContext expr() {
6822 			return getRuleContext(ExprContext.class,0);
6823 		}
6824 		public HavingClauseContext(ParserRuleContext parent, int invokingState) {
6825 			super(parent, invokingState);
6826 		}
6827 		@Override public int getRuleIndex() { return RULE_havingClause; }
6828 		@Override
6829 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6830 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitHavingClause(this);
6831 			else return visitor.visitChildren(this);
6832 		}
6833 	}
6834 
6835 	public final HavingClauseContext havingClause() throws RecognitionException {
6836 		HavingClauseContext _localctx = new HavingClauseContext(_ctx, getState());
6837 		enterRule(_localctx, 112, RULE_havingClause);
6838 		try {
6839 			enterOuterAlt(_localctx, 1);
6840 			{
6841 			setState(1096);
6842 			match(HAVING);
6843 			setState(1097);
6844 			expr(0);
6845 			}
6846 		}
6847 		catch (RecognitionException re) {
6848 			_localctx.exception = re;
6849 			_errHandler.reportError(this, re);
6850 			_errHandler.recover(this, re);
6851 		}
6852 		finally {
6853 			exitRule();
6854 		}
6855 		return _localctx;
6856 	}
6857 
6858 	public static class LimitClauseContext extends ParserRuleContext {
6859 		public TerminalNode LIMIT() { return getToken(HiveStatementParser.LIMIT, 0); }
6860 		public LimitRowCountContext limitRowCount() {
6861 			return getRuleContext(LimitRowCountContext.class,0);
6862 		}
6863 		public TerminalNode OFFSET() { return getToken(HiveStatementParser.OFFSET, 0); }
6864 		public LimitOffsetContext limitOffset() {
6865 			return getRuleContext(LimitOffsetContext.class,0);
6866 		}
6867 		public TerminalNode COMMA_() { return getToken(HiveStatementParser.COMMA_, 0); }
6868 		public LimitClauseContext(ParserRuleContext parent, int invokingState) {
6869 			super(parent, invokingState);
6870 		}
6871 		@Override public int getRuleIndex() { return RULE_limitClause; }
6872 		@Override
6873 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6874 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLimitClause(this);
6875 			else return visitor.visitChildren(this);
6876 		}
6877 	}
6878 
6879 	public final LimitClauseContext limitClause() throws RecognitionException {
6880 		LimitClauseContext _localctx = new LimitClauseContext(_ctx, getState());
6881 		enterRule(_localctx, 114, RULE_limitClause);
6882 		try {
6883 			enterOuterAlt(_localctx, 1);
6884 			{
6885 			setState(1099);
6886 			match(LIMIT);
6887 			setState(1110);
6888 			_errHandler.sync(this);
6889 			switch ( getInterpreter().adaptivePredict(_input,112,_ctx) ) {
6890 			case 1:
6891 				{
6892 				setState(1103);
6893 				_errHandler.sync(this);
6894 				switch ( getInterpreter().adaptivePredict(_input,111,_ctx) ) {
6895 				case 1:
6896 					{
6897 					setState(1100);
6898 					limitOffset();
6899 					setState(1101);
6900 					match(COMMA_);
6901 					}
6902 					break;
6903 				}
6904 				setState(1105);
6905 				limitRowCount();
6906 				}
6907 				break;
6908 			case 2:
6909 				{
6910 				setState(1106);
6911 				limitRowCount();
6912 				setState(1107);
6913 				match(OFFSET);
6914 				setState(1108);
6915 				limitOffset();
6916 				}
6917 				break;
6918 			}
6919 			}
6920 		}
6921 		catch (RecognitionException re) {
6922 			_localctx.exception = re;
6923 			_errHandler.reportError(this, re);
6924 			_errHandler.recover(this, re);
6925 		}
6926 		finally {
6927 			exitRule();
6928 		}
6929 		return _localctx;
6930 	}
6931 
6932 	public static class LimitRowCountContext extends ParserRuleContext {
6933 		public NumberLiteralsContext numberLiterals() {
6934 			return getRuleContext(NumberLiteralsContext.class,0);
6935 		}
6936 		public ParameterMarkerContext parameterMarker() {
6937 			return getRuleContext(ParameterMarkerContext.class,0);
6938 		}
6939 		public LimitRowCountContext(ParserRuleContext parent, int invokingState) {
6940 			super(parent, invokingState);
6941 		}
6942 		@Override public int getRuleIndex() { return RULE_limitRowCount; }
6943 		@Override
6944 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
6945 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLimitRowCount(this);
6946 			else return visitor.visitChildren(this);
6947 		}
6948 	}
6949 
6950 	public final LimitRowCountContext limitRowCount() throws RecognitionException {
6951 		LimitRowCountContext _localctx = new LimitRowCountContext(_ctx, getState());
6952 		enterRule(_localctx, 116, RULE_limitRowCount);
6953 		try {
6954 			setState(1114);
6955 			_errHandler.sync(this);
6956 			switch (_input.LA(1)) {
6957 			case PLUS_:
6958 			case MINUS_:
6959 			case NUMBER_:
6960 				enterOuterAlt(_localctx, 1);
6961 				{
6962 				setState(1112);
6963 				numberLiterals();
6964 				}
6965 				break;
6966 			case QUESTION_:
6967 				enterOuterAlt(_localctx, 2);
6968 				{
6969 				setState(1113);
6970 				parameterMarker();
6971 				}
6972 				break;
6973 			default:
6974 				throw new NoViableAltException(this);
6975 			}
6976 		}
6977 		catch (RecognitionException re) {
6978 			_localctx.exception = re;
6979 			_errHandler.reportError(this, re);
6980 			_errHandler.recover(this, re);
6981 		}
6982 		finally {
6983 			exitRule();
6984 		}
6985 		return _localctx;
6986 	}
6987 
6988 	public static class LimitOffsetContext extends ParserRuleContext {
6989 		public NumberLiteralsContext numberLiterals() {
6990 			return getRuleContext(NumberLiteralsContext.class,0);
6991 		}
6992 		public ParameterMarkerContext parameterMarker() {
6993 			return getRuleContext(ParameterMarkerContext.class,0);
6994 		}
6995 		public LimitOffsetContext(ParserRuleContext parent, int invokingState) {
6996 			super(parent, invokingState);
6997 		}
6998 		@Override public int getRuleIndex() { return RULE_limitOffset; }
6999 		@Override
7000 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7001 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLimitOffset(this);
7002 			else return visitor.visitChildren(this);
7003 		}
7004 	}
7005 
7006 	public final LimitOffsetContext limitOffset() throws RecognitionException {
7007 		LimitOffsetContext _localctx = new LimitOffsetContext(_ctx, getState());
7008 		enterRule(_localctx, 118, RULE_limitOffset);
7009 		try {
7010 			setState(1118);
7011 			_errHandler.sync(this);
7012 			switch (_input.LA(1)) {
7013 			case PLUS_:
7014 			case MINUS_:
7015 			case NUMBER_:
7016 				enterOuterAlt(_localctx, 1);
7017 				{
7018 				setState(1116);
7019 				numberLiterals();
7020 				}
7021 				break;
7022 			case QUESTION_:
7023 				enterOuterAlt(_localctx, 2);
7024 				{
7025 				setState(1117);
7026 				parameterMarker();
7027 				}
7028 				break;
7029 			default:
7030 				throw new NoViableAltException(this);
7031 			}
7032 		}
7033 		catch (RecognitionException re) {
7034 			_localctx.exception = re;
7035 			_errHandler.reportError(this, re);
7036 			_errHandler.recover(this, re);
7037 		}
7038 		finally {
7039 			exitRule();
7040 		}
7041 		return _localctx;
7042 	}
7043 
7044 	public static class WindowClauseContext extends ParserRuleContext {
7045 		public TerminalNode WINDOW() { return getToken(HiveStatementParser.WINDOW, 0); }
7046 		public List<WindowItemContext> windowItem() {
7047 			return getRuleContexts(WindowItemContext.class);
7048 		}
7049 		public WindowItemContext windowItem(int i) {
7050 			return getRuleContext(WindowItemContext.class,i);
7051 		}
7052 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
7053 		public TerminalNode COMMA_(int i) {
7054 			return getToken(HiveStatementParser.COMMA_, i);
7055 		}
7056 		public WindowClauseContext(ParserRuleContext parent, int invokingState) {
7057 			super(parent, invokingState);
7058 		}
7059 		@Override public int getRuleIndex() { return RULE_windowClause; }
7060 		@Override
7061 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7062 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWindowClause(this);
7063 			else return visitor.visitChildren(this);
7064 		}
7065 	}
7066 
7067 	public final WindowClauseContext windowClause() throws RecognitionException {
7068 		WindowClauseContext _localctx = new WindowClauseContext(_ctx, getState());
7069 		enterRule(_localctx, 120, RULE_windowClause);
7070 		try {
7071 			int _alt;
7072 			enterOuterAlt(_localctx, 1);
7073 			{
7074 			setState(1120);
7075 			match(WINDOW);
7076 			setState(1121);
7077 			windowItem();
7078 			setState(1126);
7079 			_errHandler.sync(this);
7080 			_alt = getInterpreter().adaptivePredict(_input,115,_ctx);
7081 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
7082 				if ( _alt==1 ) {
7083 					{
7084 					{
7085 					setState(1122);
7086 					match(COMMA_);
7087 					setState(1123);
7088 					windowItem();
7089 					}
7090 					} 
7091 				}
7092 				setState(1128);
7093 				_errHandler.sync(this);
7094 				_alt = getInterpreter().adaptivePredict(_input,115,_ctx);
7095 			}
7096 			}
7097 		}
7098 		catch (RecognitionException re) {
7099 			_localctx.exception = re;
7100 			_errHandler.reportError(this, re);
7101 			_errHandler.recover(this, re);
7102 		}
7103 		finally {
7104 			exitRule();
7105 		}
7106 		return _localctx;
7107 	}
7108 
7109 	public static class WindowItemContext extends ParserRuleContext {
7110 		public IdentifierContext identifier() {
7111 			return getRuleContext(IdentifierContext.class,0);
7112 		}
7113 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
7114 		public WindowSpecificationContext windowSpecification() {
7115 			return getRuleContext(WindowSpecificationContext.class,0);
7116 		}
7117 		public WindowItemContext(ParserRuleContext parent, int invokingState) {
7118 			super(parent, invokingState);
7119 		}
7120 		@Override public int getRuleIndex() { return RULE_windowItem; }
7121 		@Override
7122 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7123 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWindowItem(this);
7124 			else return visitor.visitChildren(this);
7125 		}
7126 	}
7127 
7128 	public final WindowItemContext windowItem() throws RecognitionException {
7129 		WindowItemContext _localctx = new WindowItemContext(_ctx, getState());
7130 		enterRule(_localctx, 122, RULE_windowItem);
7131 		try {
7132 			enterOuterAlt(_localctx, 1);
7133 			{
7134 			setState(1129);
7135 			identifier();
7136 			setState(1130);
7137 			match(AS);
7138 			setState(1131);
7139 			windowSpecification();
7140 			}
7141 		}
7142 		catch (RecognitionException re) {
7143 			_localctx.exception = re;
7144 			_errHandler.reportError(this, re);
7145 			_errHandler.recover(this, re);
7146 		}
7147 		finally {
7148 			exitRule();
7149 		}
7150 		return _localctx;
7151 	}
7152 
7153 	public static class SubqueryContext extends ParserRuleContext {
7154 		public QueryExpressionParensContext queryExpressionParens() {
7155 			return getRuleContext(QueryExpressionParensContext.class,0);
7156 		}
7157 		public SubqueryContext(ParserRuleContext parent, int invokingState) {
7158 			super(parent, invokingState);
7159 		}
7160 		@Override public int getRuleIndex() { return RULE_subquery; }
7161 		@Override
7162 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7163 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSubquery(this);
7164 			else return visitor.visitChildren(this);
7165 		}
7166 	}
7167 
7168 	public final SubqueryContext subquery() throws RecognitionException {
7169 		SubqueryContext _localctx = new SubqueryContext(_ctx, getState());
7170 		enterRule(_localctx, 124, RULE_subquery);
7171 		try {
7172 			enterOuterAlt(_localctx, 1);
7173 			{
7174 			setState(1133);
7175 			queryExpressionParens();
7176 			}
7177 		}
7178 		catch (RecognitionException re) {
7179 			_localctx.exception = re;
7180 			_errHandler.reportError(this, re);
7181 			_errHandler.recover(this, re);
7182 		}
7183 		finally {
7184 			exitRule();
7185 		}
7186 		return _localctx;
7187 	}
7188 
7189 	public static class SelectLinesIntoContext extends ParserRuleContext {
7190 		public TerminalNode STARTING() { return getToken(HiveStatementParser.STARTING, 0); }
7191 		public TerminalNode BY() { return getToken(HiveStatementParser.BY, 0); }
7192 		public String_Context string_() {
7193 			return getRuleContext(String_Context.class,0);
7194 		}
7195 		public TerminalNode TERMINATED() { return getToken(HiveStatementParser.TERMINATED, 0); }
7196 		public SelectLinesIntoContext(ParserRuleContext parent, int invokingState) {
7197 			super(parent, invokingState);
7198 		}
7199 		@Override public int getRuleIndex() { return RULE_selectLinesInto; }
7200 		@Override
7201 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7202 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSelectLinesInto(this);
7203 			else return visitor.visitChildren(this);
7204 		}
7205 	}
7206 
7207 	public final SelectLinesIntoContext selectLinesInto() throws RecognitionException {
7208 		SelectLinesIntoContext _localctx = new SelectLinesIntoContext(_ctx, getState());
7209 		enterRule(_localctx, 126, RULE_selectLinesInto);
7210 		try {
7211 			setState(1141);
7212 			_errHandler.sync(this);
7213 			switch (_input.LA(1)) {
7214 			case STARTING:
7215 				enterOuterAlt(_localctx, 1);
7216 				{
7217 				setState(1135);
7218 				match(STARTING);
7219 				setState(1136);
7220 				match(BY);
7221 				setState(1137);
7222 				string_();
7223 				}
7224 				break;
7225 			case TERMINATED:
7226 				enterOuterAlt(_localctx, 2);
7227 				{
7228 				setState(1138);
7229 				match(TERMINATED);
7230 				setState(1139);
7231 				match(BY);
7232 				setState(1140);
7233 				string_();
7234 				}
7235 				break;
7236 			default:
7237 				throw new NoViableAltException(this);
7238 			}
7239 		}
7240 		catch (RecognitionException re) {
7241 			_localctx.exception = re;
7242 			_errHandler.reportError(this, re);
7243 			_errHandler.recover(this, re);
7244 		}
7245 		finally {
7246 			exitRule();
7247 		}
7248 		return _localctx;
7249 	}
7250 
7251 	public static class SelectFieldsIntoContext extends ParserRuleContext {
7252 		public TerminalNode TERMINATED() { return getToken(HiveStatementParser.TERMINATED, 0); }
7253 		public TerminalNode BY() { return getToken(HiveStatementParser.BY, 0); }
7254 		public String_Context string_() {
7255 			return getRuleContext(String_Context.class,0);
7256 		}
7257 		public TerminalNode ENCLOSED() { return getToken(HiveStatementParser.ENCLOSED, 0); }
7258 		public TerminalNode OPTIONALLY() { return getToken(HiveStatementParser.OPTIONALLY, 0); }
7259 		public TerminalNode ESCAPED() { return getToken(HiveStatementParser.ESCAPED, 0); }
7260 		public SelectFieldsIntoContext(ParserRuleContext parent, int invokingState) {
7261 			super(parent, invokingState);
7262 		}
7263 		@Override public int getRuleIndex() { return RULE_selectFieldsInto; }
7264 		@Override
7265 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7266 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSelectFieldsInto(this);
7267 			else return visitor.visitChildren(this);
7268 		}
7269 	}
7270 
7271 	public final SelectFieldsIntoContext selectFieldsInto() throws RecognitionException {
7272 		SelectFieldsIntoContext _localctx = new SelectFieldsIntoContext(_ctx, getState());
7273 		enterRule(_localctx, 128, RULE_selectFieldsInto);
7274 		int _la;
7275 		try {
7276 			setState(1155);
7277 			_errHandler.sync(this);
7278 			switch (_input.LA(1)) {
7279 			case TERMINATED:
7280 				enterOuterAlt(_localctx, 1);
7281 				{
7282 				setState(1143);
7283 				match(TERMINATED);
7284 				setState(1144);
7285 				match(BY);
7286 				setState(1145);
7287 				string_();
7288 				}
7289 				break;
7290 			case ENCLOSED:
7291 			case OPTIONALLY:
7292 				enterOuterAlt(_localctx, 2);
7293 				{
7294 				setState(1147);
7295 				_errHandler.sync(this);
7296 				_la = _input.LA(1);
7297 				if (_la==OPTIONALLY) {
7298 					{
7299 					setState(1146);
7300 					match(OPTIONALLY);
7301 					}
7302 				}
7303 
7304 				setState(1149);
7305 				match(ENCLOSED);
7306 				setState(1150);
7307 				match(BY);
7308 				setState(1151);
7309 				string_();
7310 				}
7311 				break;
7312 			case ESCAPED:
7313 				enterOuterAlt(_localctx, 3);
7314 				{
7315 				setState(1152);
7316 				match(ESCAPED);
7317 				setState(1153);
7318 				match(BY);
7319 				setState(1154);
7320 				string_();
7321 				}
7322 				break;
7323 			default:
7324 				throw new NoViableAltException(this);
7325 			}
7326 		}
7327 		catch (RecognitionException re) {
7328 			_localctx.exception = re;
7329 			_errHandler.reportError(this, re);
7330 			_errHandler.recover(this, re);
7331 		}
7332 		finally {
7333 			exitRule();
7334 		}
7335 		return _localctx;
7336 	}
7337 
7338 	public static class SelectIntoExpressionContext extends ParserRuleContext {
7339 		public TerminalNode INTO() { return getToken(HiveStatementParser.INTO, 0); }
7340 		public List<VariableContext> variable() {
7341 			return getRuleContexts(VariableContext.class);
7342 		}
7343 		public VariableContext variable(int i) {
7344 			return getRuleContext(VariableContext.class,i);
7345 		}
7346 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
7347 		public TerminalNode COMMA_(int i) {
7348 			return getToken(HiveStatementParser.COMMA_, i);
7349 		}
7350 		public TerminalNode DUMPFILE() { return getToken(HiveStatementParser.DUMPFILE, 0); }
7351 		public String_Context string_() {
7352 			return getRuleContext(String_Context.class,0);
7353 		}
7354 		public TerminalNode OUTFILE() { return getToken(HiveStatementParser.OUTFILE, 0); }
7355 		public TerminalNode CHARACTER() { return getToken(HiveStatementParser.CHARACTER, 0); }
7356 		public TerminalNode SET() { return getToken(HiveStatementParser.SET, 0); }
7357 		public CharsetNameContext charsetName() {
7358 			return getRuleContext(CharsetNameContext.class,0);
7359 		}
7360 		public TerminalNode COLUMNS() { return getToken(HiveStatementParser.COLUMNS, 0); }
7361 		public TerminalNode LINES() { return getToken(HiveStatementParser.LINES, 0); }
7362 		public List<SelectFieldsIntoContext> selectFieldsInto() {
7363 			return getRuleContexts(SelectFieldsIntoContext.class);
7364 		}
7365 		public SelectFieldsIntoContext selectFieldsInto(int i) {
7366 			return getRuleContext(SelectFieldsIntoContext.class,i);
7367 		}
7368 		public List<SelectLinesIntoContext> selectLinesInto() {
7369 			return getRuleContexts(SelectLinesIntoContext.class);
7370 		}
7371 		public SelectLinesIntoContext selectLinesInto(int i) {
7372 			return getRuleContext(SelectLinesIntoContext.class,i);
7373 		}
7374 		public SelectIntoExpressionContext(ParserRuleContext parent, int invokingState) {
7375 			super(parent, invokingState);
7376 		}
7377 		@Override public int getRuleIndex() { return RULE_selectIntoExpression; }
7378 		@Override
7379 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7380 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSelectIntoExpression(this);
7381 			else return visitor.visitChildren(this);
7382 		}
7383 	}
7384 
7385 	public final SelectIntoExpressionContext selectIntoExpression() throws RecognitionException {
7386 		SelectIntoExpressionContext _localctx = new SelectIntoExpressionContext(_ctx, getState());
7387 		enterRule(_localctx, 130, RULE_selectIntoExpression);
7388 		try {
7389 			int _alt;
7390 			setState(1193);
7391 			_errHandler.sync(this);
7392 			switch ( getInterpreter().adaptivePredict(_input,125,_ctx) ) {
7393 			case 1:
7394 				enterOuterAlt(_localctx, 1);
7395 				{
7396 				setState(1157);
7397 				match(INTO);
7398 				setState(1158);
7399 				variable();
7400 				setState(1163);
7401 				_errHandler.sync(this);
7402 				_alt = getInterpreter().adaptivePredict(_input,119,_ctx);
7403 				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
7404 					if ( _alt==1 ) {
7405 						{
7406 						{
7407 						setState(1159);
7408 						match(COMMA_);
7409 						setState(1160);
7410 						variable();
7411 						}
7412 						} 
7413 					}
7414 					setState(1165);
7415 					_errHandler.sync(this);
7416 					_alt = getInterpreter().adaptivePredict(_input,119,_ctx);
7417 				}
7418 				}
7419 				break;
7420 			case 2:
7421 				enterOuterAlt(_localctx, 2);
7422 				{
7423 				setState(1166);
7424 				match(INTO);
7425 				setState(1167);
7426 				match(DUMPFILE);
7427 				setState(1168);
7428 				string_();
7429 				}
7430 				break;
7431 			case 3:
7432 				enterOuterAlt(_localctx, 3);
7433 				{
7434 				{
7435 				setState(1169);
7436 				match(INTO);
7437 				setState(1170);
7438 				match(OUTFILE);
7439 				setState(1171);
7440 				string_();
7441 				setState(1175);
7442 				_errHandler.sync(this);
7443 				switch ( getInterpreter().adaptivePredict(_input,120,_ctx) ) {
7444 				case 1:
7445 					{
7446 					setState(1172);
7447 					match(CHARACTER);
7448 					setState(1173);
7449 					match(SET);
7450 					setState(1174);
7451 					charsetName();
7452 					}
7453 					break;
7454 				}
7455 				setState(1183);
7456 				_errHandler.sync(this);
7457 				switch ( getInterpreter().adaptivePredict(_input,122,_ctx) ) {
7458 				case 1:
7459 					{
7460 					setState(1177);
7461 					match(COLUMNS);
7462 					setState(1179); 
7463 					_errHandler.sync(this);
7464 					_alt = 1;
7465 					do {
7466 						switch (_alt) {
7467 						case 1:
7468 							{
7469 							{
7470 							setState(1178);
7471 							selectFieldsInto();
7472 							}
7473 							}
7474 							break;
7475 						default:
7476 							throw new NoViableAltException(this);
7477 						}
7478 						setState(1181); 
7479 						_errHandler.sync(this);
7480 						_alt = getInterpreter().adaptivePredict(_input,121,_ctx);
7481 					} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
7482 					}
7483 					break;
7484 				}
7485 				setState(1191);
7486 				_errHandler.sync(this);
7487 				switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) {
7488 				case 1:
7489 					{
7490 					setState(1185);
7491 					match(LINES);
7492 					setState(1187); 
7493 					_errHandler.sync(this);
7494 					_alt = 1;
7495 					do {
7496 						switch (_alt) {
7497 						case 1:
7498 							{
7499 							{
7500 							setState(1186);
7501 							selectLinesInto();
7502 							}
7503 							}
7504 							break;
7505 						default:
7506 							throw new NoViableAltException(this);
7507 						}
7508 						setState(1189); 
7509 						_errHandler.sync(this);
7510 						_alt = getInterpreter().adaptivePredict(_input,123,_ctx);
7511 					} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
7512 					}
7513 					break;
7514 				}
7515 				}
7516 				}
7517 				break;
7518 			}
7519 		}
7520 		catch (RecognitionException re) {
7521 			_localctx.exception = re;
7522 			_errHandler.reportError(this, re);
7523 			_errHandler.recover(this, re);
7524 		}
7525 		finally {
7526 			exitRule();
7527 		}
7528 		return _localctx;
7529 	}
7530 
7531 	public static class LockClauseContext extends ParserRuleContext {
7532 		public TerminalNode FOR() { return getToken(HiveStatementParser.FOR, 0); }
7533 		public LockStrengthContext lockStrength() {
7534 			return getRuleContext(LockStrengthContext.class,0);
7535 		}
7536 		public TableLockingListContext tableLockingList() {
7537 			return getRuleContext(TableLockingListContext.class,0);
7538 		}
7539 		public LockedRowActionContext lockedRowAction() {
7540 			return getRuleContext(LockedRowActionContext.class,0);
7541 		}
7542 		public TerminalNode LOCK() { return getToken(HiveStatementParser.LOCK, 0); }
7543 		public TerminalNode IN() { return getToken(HiveStatementParser.IN, 0); }
7544 		public TerminalNode SHARE() { return getToken(HiveStatementParser.SHARE, 0); }
7545 		public TerminalNode MODE() { return getToken(HiveStatementParser.MODE, 0); }
7546 		public LockClauseContext(ParserRuleContext parent, int invokingState) {
7547 			super(parent, invokingState);
7548 		}
7549 		@Override public int getRuleIndex() { return RULE_lockClause; }
7550 		@Override
7551 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7552 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLockClause(this);
7553 			else return visitor.visitChildren(this);
7554 		}
7555 	}
7556 
7557 	public final LockClauseContext lockClause() throws RecognitionException {
7558 		LockClauseContext _localctx = new LockClauseContext(_ctx, getState());
7559 		enterRule(_localctx, 132, RULE_lockClause);
7560 		int _la;
7561 		try {
7562 			setState(1207);
7563 			_errHandler.sync(this);
7564 			switch (_input.LA(1)) {
7565 			case FOR:
7566 				enterOuterAlt(_localctx, 1);
7567 				{
7568 				setState(1195);
7569 				match(FOR);
7570 				setState(1196);
7571 				lockStrength();
7572 				setState(1198);
7573 				_errHandler.sync(this);
7574 				_la = _input.LA(1);
7575 				if (_la==OF) {
7576 					{
7577 					setState(1197);
7578 					tableLockingList();
7579 					}
7580 				}
7581 
7582 				setState(1201);
7583 				_errHandler.sync(this);
7584 				_la = _input.LA(1);
7585 				if (_la==NOWAIT || _la==SKIP_SYMBOL) {
7586 					{
7587 					setState(1200);
7588 					lockedRowAction();
7589 					}
7590 				}
7591 
7592 				}
7593 				break;
7594 			case LOCK:
7595 				enterOuterAlt(_localctx, 2);
7596 				{
7597 				setState(1203);
7598 				match(LOCK);
7599 				setState(1204);
7600 				match(IN);
7601 				setState(1205);
7602 				match(SHARE);
7603 				setState(1206);
7604 				match(MODE);
7605 				}
7606 				break;
7607 			default:
7608 				throw new NoViableAltException(this);
7609 			}
7610 		}
7611 		catch (RecognitionException re) {
7612 			_localctx.exception = re;
7613 			_errHandler.reportError(this, re);
7614 			_errHandler.recover(this, re);
7615 		}
7616 		finally {
7617 			exitRule();
7618 		}
7619 		return _localctx;
7620 	}
7621 
7622 	public static class LockClauseListContext extends ParserRuleContext {
7623 		public List<LockClauseContext> lockClause() {
7624 			return getRuleContexts(LockClauseContext.class);
7625 		}
7626 		public LockClauseContext lockClause(int i) {
7627 			return getRuleContext(LockClauseContext.class,i);
7628 		}
7629 		public LockClauseListContext(ParserRuleContext parent, int invokingState) {
7630 			super(parent, invokingState);
7631 		}
7632 		@Override public int getRuleIndex() { return RULE_lockClauseList; }
7633 		@Override
7634 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7635 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLockClauseList(this);
7636 			else return visitor.visitChildren(this);
7637 		}
7638 	}
7639 
7640 	public final LockClauseListContext lockClauseList() throws RecognitionException {
7641 		LockClauseListContext _localctx = new LockClauseListContext(_ctx, getState());
7642 		enterRule(_localctx, 134, RULE_lockClauseList);
7643 		int _la;
7644 		try {
7645 			enterOuterAlt(_localctx, 1);
7646 			{
7647 			setState(1210); 
7648 			_errHandler.sync(this);
7649 			_la = _input.LA(1);
7650 			do {
7651 				{
7652 				{
7653 				setState(1209);
7654 				lockClause();
7655 				}
7656 				}
7657 				setState(1212); 
7658 				_errHandler.sync(this);
7659 				_la = _input.LA(1);
7660 			} while ( _la==FOR || _la==LOCK );
7661 			}
7662 		}
7663 		catch (RecognitionException re) {
7664 			_localctx.exception = re;
7665 			_errHandler.reportError(this, re);
7666 			_errHandler.recover(this, re);
7667 		}
7668 		finally {
7669 			exitRule();
7670 		}
7671 		return _localctx;
7672 	}
7673 
7674 	public static class LockStrengthContext extends ParserRuleContext {
7675 		public TerminalNode UPDATE() { return getToken(HiveStatementParser.UPDATE, 0); }
7676 		public TerminalNode SHARE() { return getToken(HiveStatementParser.SHARE, 0); }
7677 		public LockStrengthContext(ParserRuleContext parent, int invokingState) {
7678 			super(parent, invokingState);
7679 		}
7680 		@Override public int getRuleIndex() { return RULE_lockStrength; }
7681 		@Override
7682 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7683 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLockStrength(this);
7684 			else return visitor.visitChildren(this);
7685 		}
7686 	}
7687 
7688 	public final LockStrengthContext lockStrength() throws RecognitionException {
7689 		LockStrengthContext _localctx = new LockStrengthContext(_ctx, getState());
7690 		enterRule(_localctx, 136, RULE_lockStrength);
7691 		int _la;
7692 		try {
7693 			enterOuterAlt(_localctx, 1);
7694 			{
7695 			setState(1214);
7696 			_la = _input.LA(1);
7697 			if ( !(_la==SHARE || _la==UPDATE) ) {
7698 			_errHandler.recoverInline(this);
7699 			}
7700 			else {
7701 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
7702 				_errHandler.reportMatch(this);
7703 				consume();
7704 			}
7705 			}
7706 		}
7707 		catch (RecognitionException re) {
7708 			_localctx.exception = re;
7709 			_errHandler.reportError(this, re);
7710 			_errHandler.recover(this, re);
7711 		}
7712 		finally {
7713 			exitRule();
7714 		}
7715 		return _localctx;
7716 	}
7717 
7718 	public static class LockedRowActionContext extends ParserRuleContext {
7719 		public TerminalNode SKIP_SYMBOL() { return getToken(HiveStatementParser.SKIP_SYMBOL, 0); }
7720 		public TerminalNode LOCKED() { return getToken(HiveStatementParser.LOCKED, 0); }
7721 		public TerminalNode NOWAIT() { return getToken(HiveStatementParser.NOWAIT, 0); }
7722 		public LockedRowActionContext(ParserRuleContext parent, int invokingState) {
7723 			super(parent, invokingState);
7724 		}
7725 		@Override public int getRuleIndex() { return RULE_lockedRowAction; }
7726 		@Override
7727 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7728 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLockedRowAction(this);
7729 			else return visitor.visitChildren(this);
7730 		}
7731 	}
7732 
7733 	public final LockedRowActionContext lockedRowAction() throws RecognitionException {
7734 		LockedRowActionContext _localctx = new LockedRowActionContext(_ctx, getState());
7735 		enterRule(_localctx, 138, RULE_lockedRowAction);
7736 		try {
7737 			setState(1219);
7738 			_errHandler.sync(this);
7739 			switch (_input.LA(1)) {
7740 			case SKIP_SYMBOL:
7741 				enterOuterAlt(_localctx, 1);
7742 				{
7743 				setState(1216);
7744 				match(SKIP_SYMBOL);
7745 				setState(1217);
7746 				match(LOCKED);
7747 				}
7748 				break;
7749 			case NOWAIT:
7750 				enterOuterAlt(_localctx, 2);
7751 				{
7752 				setState(1218);
7753 				match(NOWAIT);
7754 				}
7755 				break;
7756 			default:
7757 				throw new NoViableAltException(this);
7758 			}
7759 		}
7760 		catch (RecognitionException re) {
7761 			_localctx.exception = re;
7762 			_errHandler.reportError(this, re);
7763 			_errHandler.recover(this, re);
7764 		}
7765 		finally {
7766 			exitRule();
7767 		}
7768 		return _localctx;
7769 	}
7770 
7771 	public static class TableLockingListContext extends ParserRuleContext {
7772 		public TerminalNode OF() { return getToken(HiveStatementParser.OF, 0); }
7773 		public TableAliasRefListContext tableAliasRefList() {
7774 			return getRuleContext(TableAliasRefListContext.class,0);
7775 		}
7776 		public TableLockingListContext(ParserRuleContext parent, int invokingState) {
7777 			super(parent, invokingState);
7778 		}
7779 		@Override public int getRuleIndex() { return RULE_tableLockingList; }
7780 		@Override
7781 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7782 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableLockingList(this);
7783 			else return visitor.visitChildren(this);
7784 		}
7785 	}
7786 
7787 	public final TableLockingListContext tableLockingList() throws RecognitionException {
7788 		TableLockingListContext _localctx = new TableLockingListContext(_ctx, getState());
7789 		enterRule(_localctx, 140, RULE_tableLockingList);
7790 		try {
7791 			enterOuterAlt(_localctx, 1);
7792 			{
7793 			setState(1221);
7794 			match(OF);
7795 			setState(1222);
7796 			tableAliasRefList();
7797 			}
7798 		}
7799 		catch (RecognitionException re) {
7800 			_localctx.exception = re;
7801 			_errHandler.reportError(this, re);
7802 			_errHandler.recover(this, re);
7803 		}
7804 		finally {
7805 			exitRule();
7806 		}
7807 		return _localctx;
7808 	}
7809 
7810 	public static class TableIdentOptWildContext extends ParserRuleContext {
7811 		public TableNameContext tableName() {
7812 			return getRuleContext(TableNameContext.class,0);
7813 		}
7814 		public TerminalNode DOT_ASTERISK_() { return getToken(HiveStatementParser.DOT_ASTERISK_, 0); }
7815 		public TableIdentOptWildContext(ParserRuleContext parent, int invokingState) {
7816 			super(parent, invokingState);
7817 		}
7818 		@Override public int getRuleIndex() { return RULE_tableIdentOptWild; }
7819 		@Override
7820 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7821 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableIdentOptWild(this);
7822 			else return visitor.visitChildren(this);
7823 		}
7824 	}
7825 
7826 	public final TableIdentOptWildContext tableIdentOptWild() throws RecognitionException {
7827 		TableIdentOptWildContext _localctx = new TableIdentOptWildContext(_ctx, getState());
7828 		enterRule(_localctx, 142, RULE_tableIdentOptWild);
7829 		int _la;
7830 		try {
7831 			enterOuterAlt(_localctx, 1);
7832 			{
7833 			setState(1224);
7834 			tableName();
7835 			setState(1226);
7836 			_errHandler.sync(this);
7837 			_la = _input.LA(1);
7838 			if (_la==DOT_ASTERISK_) {
7839 				{
7840 				setState(1225);
7841 				match(DOT_ASTERISK_);
7842 				}
7843 			}
7844 
7845 			}
7846 		}
7847 		catch (RecognitionException re) {
7848 			_localctx.exception = re;
7849 			_errHandler.reportError(this, re);
7850 			_errHandler.recover(this, re);
7851 		}
7852 		finally {
7853 			exitRule();
7854 		}
7855 		return _localctx;
7856 	}
7857 
7858 	public static class TableAliasRefListContext extends ParserRuleContext {
7859 		public List<TableIdentOptWildContext> tableIdentOptWild() {
7860 			return getRuleContexts(TableIdentOptWildContext.class);
7861 		}
7862 		public TableIdentOptWildContext tableIdentOptWild(int i) {
7863 			return getRuleContext(TableIdentOptWildContext.class,i);
7864 		}
7865 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
7866 		public TerminalNode COMMA_(int i) {
7867 			return getToken(HiveStatementParser.COMMA_, i);
7868 		}
7869 		public TableAliasRefListContext(ParserRuleContext parent, int invokingState) {
7870 			super(parent, invokingState);
7871 		}
7872 		@Override public int getRuleIndex() { return RULE_tableAliasRefList; }
7873 		@Override
7874 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7875 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableAliasRefList(this);
7876 			else return visitor.visitChildren(this);
7877 		}
7878 	}
7879 
7880 	public final TableAliasRefListContext tableAliasRefList() throws RecognitionException {
7881 		TableAliasRefListContext _localctx = new TableAliasRefListContext(_ctx, getState());
7882 		enterRule(_localctx, 144, RULE_tableAliasRefList);
7883 		int _la;
7884 		try {
7885 			enterOuterAlt(_localctx, 1);
7886 			{
7887 			setState(1228);
7888 			tableIdentOptWild();
7889 			setState(1233);
7890 			_errHandler.sync(this);
7891 			_la = _input.LA(1);
7892 			while (_la==COMMA_) {
7893 				{
7894 				{
7895 				setState(1229);
7896 				match(COMMA_);
7897 				setState(1230);
7898 				tableIdentOptWild();
7899 				}
7900 				}
7901 				setState(1235);
7902 				_errHandler.sync(this);
7903 				_la = _input.LA(1);
7904 			}
7905 			}
7906 		}
7907 		catch (RecognitionException re) {
7908 			_localctx.exception = re;
7909 			_errHandler.reportError(this, re);
7910 			_errHandler.recover(this, re);
7911 		}
7912 		finally {
7913 			exitRule();
7914 		}
7915 		return _localctx;
7916 	}
7917 
7918 	public static class ParameterMarkerContext extends ParserRuleContext {
7919 		public TerminalNode QUESTION_() { return getToken(HiveStatementParser.QUESTION_, 0); }
7920 		public ParameterMarkerContext(ParserRuleContext parent, int invokingState) {
7921 			super(parent, invokingState);
7922 		}
7923 		@Override public int getRuleIndex() { return RULE_parameterMarker; }
7924 		@Override
7925 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7926 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitParameterMarker(this);
7927 			else return visitor.visitChildren(this);
7928 		}
7929 	}
7930 
7931 	public final ParameterMarkerContext parameterMarker() throws RecognitionException {
7932 		ParameterMarkerContext _localctx = new ParameterMarkerContext(_ctx, getState());
7933 		enterRule(_localctx, 146, RULE_parameterMarker);
7934 		try {
7935 			enterOuterAlt(_localctx, 1);
7936 			{
7937 			setState(1236);
7938 			match(QUESTION_);
7939 			}
7940 		}
7941 		catch (RecognitionException re) {
7942 			_localctx.exception = re;
7943 			_errHandler.reportError(this, re);
7944 			_errHandler.recover(this, re);
7945 		}
7946 		finally {
7947 			exitRule();
7948 		}
7949 		return _localctx;
7950 	}
7951 
7952 	public static class CustomKeywordContext extends ParserRuleContext {
7953 		public TerminalNode MAX() { return getToken(HiveStatementParser.MAX, 0); }
7954 		public TerminalNode MIN() { return getToken(HiveStatementParser.MIN, 0); }
7955 		public TerminalNode SUM() { return getToken(HiveStatementParser.SUM, 0); }
7956 		public TerminalNode COUNT() { return getToken(HiveStatementParser.COUNT, 0); }
7957 		public TerminalNode GROUP_CONCAT() { return getToken(HiveStatementParser.GROUP_CONCAT, 0); }
7958 		public TerminalNode CAST() { return getToken(HiveStatementParser.CAST, 0); }
7959 		public TerminalNode POSITION() { return getToken(HiveStatementParser.POSITION, 0); }
7960 		public TerminalNode SUBSTRING() { return getToken(HiveStatementParser.SUBSTRING, 0); }
7961 		public TerminalNode SUBSTR() { return getToken(HiveStatementParser.SUBSTR, 0); }
7962 		public TerminalNode EXTRACT() { return getToken(HiveStatementParser.EXTRACT, 0); }
7963 		public TerminalNode TRIM() { return getToken(HiveStatementParser.TRIM, 0); }
7964 		public TerminalNode LAST_DAY() { return getToken(HiveStatementParser.LAST_DAY, 0); }
7965 		public TerminalNode TRADITIONAL() { return getToken(HiveStatementParser.TRADITIONAL, 0); }
7966 		public TerminalNode TREE() { return getToken(HiveStatementParser.TREE, 0); }
7967 		public TerminalNode MYSQL_ADMIN() { return getToken(HiveStatementParser.MYSQL_ADMIN, 0); }
7968 		public TerminalNode INSTANT() { return getToken(HiveStatementParser.INSTANT, 0); }
7969 		public TerminalNode INPLACE() { return getToken(HiveStatementParser.INPLACE, 0); }
7970 		public TerminalNode COPY() { return getToken(HiveStatementParser.COPY, 0); }
7971 		public TerminalNode UL_BINARY() { return getToken(HiveStatementParser.UL_BINARY, 0); }
7972 		public TerminalNode AUTOCOMMIT() { return getToken(HiveStatementParser.AUTOCOMMIT, 0); }
7973 		public TerminalNode INNODB() { return getToken(HiveStatementParser.INNODB, 0); }
7974 		public TerminalNode REDO_LOG() { return getToken(HiveStatementParser.REDO_LOG, 0); }
7975 		public TerminalNode LAST_VALUE() { return getToken(HiveStatementParser.LAST_VALUE, 0); }
7976 		public TerminalNode PRIMARY() { return getToken(HiveStatementParser.PRIMARY, 0); }
7977 		public TerminalNode MAXVALUE() { return getToken(HiveStatementParser.MAXVALUE, 0); }
7978 		public TerminalNode BIT_XOR() { return getToken(HiveStatementParser.BIT_XOR, 0); }
7979 		public TerminalNode MYSQL_MAIN() { return getToken(HiveStatementParser.MYSQL_MAIN, 0); }
7980 		public TerminalNode UTC_DATE() { return getToken(HiveStatementParser.UTC_DATE, 0); }
7981 		public TerminalNode UTC_TIME() { return getToken(HiveStatementParser.UTC_TIME, 0); }
7982 		public TerminalNode UTC_TIMESTAMP() { return getToken(HiveStatementParser.UTC_TIMESTAMP, 0); }
7983 		public CustomKeywordContext(ParserRuleContext parent, int invokingState) {
7984 			super(parent, invokingState);
7985 		}
7986 		@Override public int getRuleIndex() { return RULE_customKeyword; }
7987 		@Override
7988 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
7989 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCustomKeyword(this);
7990 			else return visitor.visitChildren(this);
7991 		}
7992 	}
7993 
7994 	public final CustomKeywordContext customKeyword() throws RecognitionException {
7995 		CustomKeywordContext _localctx = new CustomKeywordContext(_ctx, getState());
7996 		enterRule(_localctx, 148, RULE_customKeyword);
7997 		int _la;
7998 		try {
7999 			enterOuterAlt(_localctx, 1);
8000 			{
8001 			setState(1238);
8002 			_la = _input.LA(1);
8003 			if ( !(((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (GROUP_CONCAT - 47)) | (1L << (CAST - 47)) | (1L << (POSITION - 47)) | (1L << (SUBSTRING - 47)) | (1L << (SUBSTR - 47)) | (1L << (EXTRACT - 47)) | (1L << (TRIM - 47)) | (1L << (LAST_DAY - 47)) | (1L << (TRADITIONAL - 47)) | (1L << (TREE - 47)) | (1L << (MYSQL_MAIN - 47)) | (1L << (MYSQL_ADMIN - 47)) | (1L << (INSTANT - 47)) | (1L << (INPLACE - 47)) | (1L << (COPY - 47)) | (1L << (UL_BINARY - 47)) | (1L << (AUTOCOMMIT - 47)) | (1L << (INNODB - 47)) | (1L << (REDO_LOG - 47)) | (1L << (BIT_XOR - 47)))) != 0) || _la==LAST_VALUE || _la==MAXVALUE || _la==PRIMARY || ((((_la - 776)) & ~0x3f) == 0 && ((1L << (_la - 776)) & ((1L << (UTC_DATE - 776)) | (1L << (UTC_TIME - 776)) | (1L << (UTC_TIMESTAMP - 776)))) != 0)) ) {
8004 			_errHandler.recoverInline(this);
8005 			}
8006 			else {
8007 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
8008 				_errHandler.reportMatch(this);
8009 				consume();
8010 			}
8011 			}
8012 		}
8013 		catch (RecognitionException re) {
8014 			_localctx.exception = re;
8015 			_errHandler.reportError(this, re);
8016 			_errHandler.recover(this, re);
8017 		}
8018 		finally {
8019 			exitRule();
8020 		}
8021 		return _localctx;
8022 	}
8023 
8024 	public static class LiteralsContext extends ParserRuleContext {
8025 		public StringLiteralsContext stringLiterals() {
8026 			return getRuleContext(StringLiteralsContext.class,0);
8027 		}
8028 		public NumberLiteralsContext numberLiterals() {
8029 			return getRuleContext(NumberLiteralsContext.class,0);
8030 		}
8031 		public TemporalLiteralsContext temporalLiterals() {
8032 			return getRuleContext(TemporalLiteralsContext.class,0);
8033 		}
8034 		public HexadecimalLiteralsContext hexadecimalLiterals() {
8035 			return getRuleContext(HexadecimalLiteralsContext.class,0);
8036 		}
8037 		public BitValueLiteralsContext bitValueLiterals() {
8038 			return getRuleContext(BitValueLiteralsContext.class,0);
8039 		}
8040 		public BooleanLiteralsContext booleanLiterals() {
8041 			return getRuleContext(BooleanLiteralsContext.class,0);
8042 		}
8043 		public NullValueLiteralsContext nullValueLiterals() {
8044 			return getRuleContext(NullValueLiteralsContext.class,0);
8045 		}
8046 		public LiteralsContext(ParserRuleContext parent, int invokingState) {
8047 			super(parent, invokingState);
8048 		}
8049 		@Override public int getRuleIndex() { return RULE_literals; }
8050 		@Override
8051 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8052 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLiterals(this);
8053 			else return visitor.visitChildren(this);
8054 		}
8055 	}
8056 
8057 	public final LiteralsContext literals() throws RecognitionException {
8058 		LiteralsContext _localctx = new LiteralsContext(_ctx, getState());
8059 		enterRule(_localctx, 150, RULE_literals);
8060 		try {
8061 			setState(1247);
8062 			_errHandler.sync(this);
8063 			switch ( getInterpreter().adaptivePredict(_input,133,_ctx) ) {
8064 			case 1:
8065 				enterOuterAlt(_localctx, 1);
8066 				{
8067 				setState(1240);
8068 				stringLiterals();
8069 				}
8070 				break;
8071 			case 2:
8072 				enterOuterAlt(_localctx, 2);
8073 				{
8074 				setState(1241);
8075 				numberLiterals();
8076 				}
8077 				break;
8078 			case 3:
8079 				enterOuterAlt(_localctx, 3);
8080 				{
8081 				setState(1242);
8082 				temporalLiterals();
8083 				}
8084 				break;
8085 			case 4:
8086 				enterOuterAlt(_localctx, 4);
8087 				{
8088 				setState(1243);
8089 				hexadecimalLiterals();
8090 				}
8091 				break;
8092 			case 5:
8093 				enterOuterAlt(_localctx, 5);
8094 				{
8095 				setState(1244);
8096 				bitValueLiterals();
8097 				}
8098 				break;
8099 			case 6:
8100 				enterOuterAlt(_localctx, 6);
8101 				{
8102 				setState(1245);
8103 				booleanLiterals();
8104 				}
8105 				break;
8106 			case 7:
8107 				enterOuterAlt(_localctx, 7);
8108 				{
8109 				setState(1246);
8110 				nullValueLiterals();
8111 				}
8112 				break;
8113 			}
8114 		}
8115 		catch (RecognitionException re) {
8116 			_localctx.exception = re;
8117 			_errHandler.reportError(this, re);
8118 			_errHandler.recover(this, re);
8119 		}
8120 		finally {
8121 			exitRule();
8122 		}
8123 		return _localctx;
8124 	}
8125 
8126 	public static class String_Context extends ParserRuleContext {
8127 		public TerminalNode DOUBLE_QUOTED_TEXT() { return getToken(HiveStatementParser.DOUBLE_QUOTED_TEXT, 0); }
8128 		public TerminalNode SINGLE_QUOTED_TEXT() { return getToken(HiveStatementParser.SINGLE_QUOTED_TEXT, 0); }
8129 		public String_Context(ParserRuleContext parent, int invokingState) {
8130 			super(parent, invokingState);
8131 		}
8132 		@Override public int getRuleIndex() { return RULE_string_; }
8133 		@Override
8134 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8135 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitString_(this);
8136 			else return visitor.visitChildren(this);
8137 		}
8138 	}
8139 
8140 	public final String_Context string_() throws RecognitionException {
8141 		String_Context _localctx = new String_Context(_ctx, getState());
8142 		enterRule(_localctx, 152, RULE_string_);
8143 		int _la;
8144 		try {
8145 			enterOuterAlt(_localctx, 1);
8146 			{
8147 			setState(1249);
8148 			_la = _input.LA(1);
8149 			if ( !(_la==SINGLE_QUOTED_TEXT || _la==DOUBLE_QUOTED_TEXT) ) {
8150 			_errHandler.recoverInline(this);
8151 			}
8152 			else {
8153 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
8154 				_errHandler.reportMatch(this);
8155 				consume();
8156 			}
8157 			}
8158 		}
8159 		catch (RecognitionException re) {
8160 			_localctx.exception = re;
8161 			_errHandler.reportError(this, re);
8162 			_errHandler.recover(this, re);
8163 		}
8164 		finally {
8165 			exitRule();
8166 		}
8167 		return _localctx;
8168 	}
8169 
8170 	public static class StringLiteralsContext extends ParserRuleContext {
8171 		public String_Context string_() {
8172 			return getRuleContext(String_Context.class,0);
8173 		}
8174 		public TerminalNode UNDERSCORE_CHARSET() { return getToken(HiveStatementParser.UNDERSCORE_CHARSET, 0); }
8175 		public TerminalNode UL_BINARY() { return getToken(HiveStatementParser.UL_BINARY, 0); }
8176 		public TerminalNode NCHAR_TEXT() { return getToken(HiveStatementParser.NCHAR_TEXT, 0); }
8177 		public StringLiteralsContext(ParserRuleContext parent, int invokingState) {
8178 			super(parent, invokingState);
8179 		}
8180 		@Override public int getRuleIndex() { return RULE_stringLiterals; }
8181 		@Override
8182 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8183 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitStringLiterals(this);
8184 			else return visitor.visitChildren(this);
8185 		}
8186 	}
8187 
8188 	public final StringLiteralsContext stringLiterals() throws RecognitionException {
8189 		StringLiteralsContext _localctx = new StringLiteralsContext(_ctx, getState());
8190 		enterRule(_localctx, 154, RULE_stringLiterals);
8191 		int _la;
8192 		try {
8193 			setState(1256);
8194 			_errHandler.sync(this);
8195 			switch (_input.LA(1)) {
8196 			case UL_BINARY:
8197 			case SINGLE_QUOTED_TEXT:
8198 			case DOUBLE_QUOTED_TEXT:
8199 			case UNDERSCORE_CHARSET:
8200 				enterOuterAlt(_localctx, 1);
8201 				{
8202 				setState(1252);
8203 				_errHandler.sync(this);
8204 				_la = _input.LA(1);
8205 				if (_la==UL_BINARY || _la==UNDERSCORE_CHARSET) {
8206 					{
8207 					setState(1251);
8208 					_la = _input.LA(1);
8209 					if ( !(_la==UL_BINARY || _la==UNDERSCORE_CHARSET) ) {
8210 					_errHandler.recoverInline(this);
8211 					}
8212 					else {
8213 						if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
8214 						_errHandler.reportMatch(this);
8215 						consume();
8216 					}
8217 					}
8218 				}
8219 
8220 				setState(1254);
8221 				string_();
8222 				}
8223 				break;
8224 			case NCHAR_TEXT:
8225 				enterOuterAlt(_localctx, 2);
8226 				{
8227 				setState(1255);
8228 				match(NCHAR_TEXT);
8229 				}
8230 				break;
8231 			default:
8232 				throw new NoViableAltException(this);
8233 			}
8234 		}
8235 		catch (RecognitionException re) {
8236 			_localctx.exception = re;
8237 			_errHandler.reportError(this, re);
8238 			_errHandler.recover(this, re);
8239 		}
8240 		finally {
8241 			exitRule();
8242 		}
8243 		return _localctx;
8244 	}
8245 
8246 	public static class NumberLiteralsContext extends ParserRuleContext {
8247 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
8248 		public TerminalNode PLUS_() { return getToken(HiveStatementParser.PLUS_, 0); }
8249 		public TerminalNode MINUS_() { return getToken(HiveStatementParser.MINUS_, 0); }
8250 		public NumberLiteralsContext(ParserRuleContext parent, int invokingState) {
8251 			super(parent, invokingState);
8252 		}
8253 		@Override public int getRuleIndex() { return RULE_numberLiterals; }
8254 		@Override
8255 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8256 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNumberLiterals(this);
8257 			else return visitor.visitChildren(this);
8258 		}
8259 	}
8260 
8261 	public final NumberLiteralsContext numberLiterals() throws RecognitionException {
8262 		NumberLiteralsContext _localctx = new NumberLiteralsContext(_ctx, getState());
8263 		enterRule(_localctx, 156, RULE_numberLiterals);
8264 		int _la;
8265 		try {
8266 			enterOuterAlt(_localctx, 1);
8267 			{
8268 			setState(1259);
8269 			_errHandler.sync(this);
8270 			_la = _input.LA(1);
8271 			if (_la==PLUS_ || _la==MINUS_) {
8272 				{
8273 				setState(1258);
8274 				_la = _input.LA(1);
8275 				if ( !(_la==PLUS_ || _la==MINUS_) ) {
8276 				_errHandler.recoverInline(this);
8277 				}
8278 				else {
8279 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
8280 					_errHandler.reportMatch(this);
8281 					consume();
8282 				}
8283 				}
8284 			}
8285 
8286 			setState(1261);
8287 			match(NUMBER_);
8288 			}
8289 		}
8290 		catch (RecognitionException re) {
8291 			_localctx.exception = re;
8292 			_errHandler.reportError(this, re);
8293 			_errHandler.recover(this, re);
8294 		}
8295 		finally {
8296 			exitRule();
8297 		}
8298 		return _localctx;
8299 	}
8300 
8301 	public static class TemporalLiteralsContext extends ParserRuleContext {
8302 		public TerminalNode SINGLE_QUOTED_TEXT() { return getToken(HiveStatementParser.SINGLE_QUOTED_TEXT, 0); }
8303 		public TerminalNode DATE() { return getToken(HiveStatementParser.DATE, 0); }
8304 		public TerminalNode TIME() { return getToken(HiveStatementParser.TIME, 0); }
8305 		public TerminalNode TIMESTAMP() { return getToken(HiveStatementParser.TIMESTAMP, 0); }
8306 		public TemporalLiteralsContext(ParserRuleContext parent, int invokingState) {
8307 			super(parent, invokingState);
8308 		}
8309 		@Override public int getRuleIndex() { return RULE_temporalLiterals; }
8310 		@Override
8311 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8312 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTemporalLiterals(this);
8313 			else return visitor.visitChildren(this);
8314 		}
8315 	}
8316 
8317 	public final TemporalLiteralsContext temporalLiterals() throws RecognitionException {
8318 		TemporalLiteralsContext _localctx = new TemporalLiteralsContext(_ctx, getState());
8319 		enterRule(_localctx, 158, RULE_temporalLiterals);
8320 		int _la;
8321 		try {
8322 			enterOuterAlt(_localctx, 1);
8323 			{
8324 			setState(1263);
8325 			_la = _input.LA(1);
8326 			if ( !(_la==DATE || _la==TIME || _la==TIMESTAMP) ) {
8327 			_errHandler.recoverInline(this);
8328 			}
8329 			else {
8330 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
8331 				_errHandler.reportMatch(this);
8332 				consume();
8333 			}
8334 			setState(1264);
8335 			match(SINGLE_QUOTED_TEXT);
8336 			}
8337 		}
8338 		catch (RecognitionException re) {
8339 			_localctx.exception = re;
8340 			_errHandler.reportError(this, re);
8341 			_errHandler.recover(this, re);
8342 		}
8343 		finally {
8344 			exitRule();
8345 		}
8346 		return _localctx;
8347 	}
8348 
8349 	public static class HexadecimalLiteralsContext extends ParserRuleContext {
8350 		public TerminalNode HEX_DIGIT_() { return getToken(HiveStatementParser.HEX_DIGIT_, 0); }
8351 		public TerminalNode UNDERSCORE_CHARSET() { return getToken(HiveStatementParser.UNDERSCORE_CHARSET, 0); }
8352 		public CollateClauseContext collateClause() {
8353 			return getRuleContext(CollateClauseContext.class,0);
8354 		}
8355 		public HexadecimalLiteralsContext(ParserRuleContext parent, int invokingState) {
8356 			super(parent, invokingState);
8357 		}
8358 		@Override public int getRuleIndex() { return RULE_hexadecimalLiterals; }
8359 		@Override
8360 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8361 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitHexadecimalLiterals(this);
8362 			else return visitor.visitChildren(this);
8363 		}
8364 	}
8365 
8366 	public final HexadecimalLiteralsContext hexadecimalLiterals() throws RecognitionException {
8367 		HexadecimalLiteralsContext _localctx = new HexadecimalLiteralsContext(_ctx, getState());
8368 		enterRule(_localctx, 160, RULE_hexadecimalLiterals);
8369 		int _la;
8370 		try {
8371 			enterOuterAlt(_localctx, 1);
8372 			{
8373 			setState(1267);
8374 			_errHandler.sync(this);
8375 			_la = _input.LA(1);
8376 			if (_la==UNDERSCORE_CHARSET) {
8377 				{
8378 				setState(1266);
8379 				match(UNDERSCORE_CHARSET);
8380 				}
8381 			}
8382 
8383 			setState(1269);
8384 			match(HEX_DIGIT_);
8385 			setState(1271);
8386 			_errHandler.sync(this);
8387 			switch ( getInterpreter().adaptivePredict(_input,138,_ctx) ) {
8388 			case 1:
8389 				{
8390 				setState(1270);
8391 				collateClause();
8392 				}
8393 				break;
8394 			}
8395 			}
8396 		}
8397 		catch (RecognitionException re) {
8398 			_localctx.exception = re;
8399 			_errHandler.reportError(this, re);
8400 			_errHandler.recover(this, re);
8401 		}
8402 		finally {
8403 			exitRule();
8404 		}
8405 		return _localctx;
8406 	}
8407 
8408 	public static class BitValueLiteralsContext extends ParserRuleContext {
8409 		public TerminalNode BIT_NUM_() { return getToken(HiveStatementParser.BIT_NUM_, 0); }
8410 		public TerminalNode UNDERSCORE_CHARSET() { return getToken(HiveStatementParser.UNDERSCORE_CHARSET, 0); }
8411 		public CollateClauseContext collateClause() {
8412 			return getRuleContext(CollateClauseContext.class,0);
8413 		}
8414 		public BitValueLiteralsContext(ParserRuleContext parent, int invokingState) {
8415 			super(parent, invokingState);
8416 		}
8417 		@Override public int getRuleIndex() { return RULE_bitValueLiterals; }
8418 		@Override
8419 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8420 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitBitValueLiterals(this);
8421 			else return visitor.visitChildren(this);
8422 		}
8423 	}
8424 
8425 	public final BitValueLiteralsContext bitValueLiterals() throws RecognitionException {
8426 		BitValueLiteralsContext _localctx = new BitValueLiteralsContext(_ctx, getState());
8427 		enterRule(_localctx, 162, RULE_bitValueLiterals);
8428 		int _la;
8429 		try {
8430 			enterOuterAlt(_localctx, 1);
8431 			{
8432 			setState(1274);
8433 			_errHandler.sync(this);
8434 			_la = _input.LA(1);
8435 			if (_la==UNDERSCORE_CHARSET) {
8436 				{
8437 				setState(1273);
8438 				match(UNDERSCORE_CHARSET);
8439 				}
8440 			}
8441 
8442 			setState(1276);
8443 			match(BIT_NUM_);
8444 			setState(1278);
8445 			_errHandler.sync(this);
8446 			switch ( getInterpreter().adaptivePredict(_input,140,_ctx) ) {
8447 			case 1:
8448 				{
8449 				setState(1277);
8450 				collateClause();
8451 				}
8452 				break;
8453 			}
8454 			}
8455 		}
8456 		catch (RecognitionException re) {
8457 			_localctx.exception = re;
8458 			_errHandler.reportError(this, re);
8459 			_errHandler.recover(this, re);
8460 		}
8461 		finally {
8462 			exitRule();
8463 		}
8464 		return _localctx;
8465 	}
8466 
8467 	public static class BooleanLiteralsContext extends ParserRuleContext {
8468 		public TerminalNode TRUE() { return getToken(HiveStatementParser.TRUE, 0); }
8469 		public TerminalNode FALSE() { return getToken(HiveStatementParser.FALSE, 0); }
8470 		public BooleanLiteralsContext(ParserRuleContext parent, int invokingState) {
8471 			super(parent, invokingState);
8472 		}
8473 		@Override public int getRuleIndex() { return RULE_booleanLiterals; }
8474 		@Override
8475 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8476 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitBooleanLiterals(this);
8477 			else return visitor.visitChildren(this);
8478 		}
8479 	}
8480 
8481 	public final BooleanLiteralsContext booleanLiterals() throws RecognitionException {
8482 		BooleanLiteralsContext _localctx = new BooleanLiteralsContext(_ctx, getState());
8483 		enterRule(_localctx, 164, RULE_booleanLiterals);
8484 		int _la;
8485 		try {
8486 			enterOuterAlt(_localctx, 1);
8487 			{
8488 			setState(1280);
8489 			_la = _input.LA(1);
8490 			if ( !(_la==FALSE || _la==TRUE) ) {
8491 			_errHandler.recoverInline(this);
8492 			}
8493 			else {
8494 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
8495 				_errHandler.reportMatch(this);
8496 				consume();
8497 			}
8498 			}
8499 		}
8500 		catch (RecognitionException re) {
8501 			_localctx.exception = re;
8502 			_errHandler.reportError(this, re);
8503 			_errHandler.recover(this, re);
8504 		}
8505 		finally {
8506 			exitRule();
8507 		}
8508 		return _localctx;
8509 	}
8510 
8511 	public static class NullValueLiteralsContext extends ParserRuleContext {
8512 		public TerminalNode NULL() { return getToken(HiveStatementParser.NULL, 0); }
8513 		public NullValueLiteralsContext(ParserRuleContext parent, int invokingState) {
8514 			super(parent, invokingState);
8515 		}
8516 		@Override public int getRuleIndex() { return RULE_nullValueLiterals; }
8517 		@Override
8518 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8519 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNullValueLiterals(this);
8520 			else return visitor.visitChildren(this);
8521 		}
8522 	}
8523 
8524 	public final NullValueLiteralsContext nullValueLiterals() throws RecognitionException {
8525 		NullValueLiteralsContext _localctx = new NullValueLiteralsContext(_ctx, getState());
8526 		enterRule(_localctx, 166, RULE_nullValueLiterals);
8527 		try {
8528 			enterOuterAlt(_localctx, 1);
8529 			{
8530 			setState(1282);
8531 			match(NULL);
8532 			}
8533 		}
8534 		catch (RecognitionException re) {
8535 			_localctx.exception = re;
8536 			_errHandler.reportError(this, re);
8537 			_errHandler.recover(this, re);
8538 		}
8539 		finally {
8540 			exitRule();
8541 		}
8542 		return _localctx;
8543 	}
8544 
8545 	public static class CollationNameContext extends ParserRuleContext {
8546 		public TextOrIdentifierContext textOrIdentifier() {
8547 			return getRuleContext(TextOrIdentifierContext.class,0);
8548 		}
8549 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
8550 		public CollationNameContext(ParserRuleContext parent, int invokingState) {
8551 			super(parent, invokingState);
8552 		}
8553 		@Override public int getRuleIndex() { return RULE_collationName; }
8554 		@Override
8555 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
8556 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCollationName(this);
8557 			else return visitor.visitChildren(this);
8558 		}
8559 	}
8560 
8561 	public final CollationNameContext collationName() throws RecognitionException {
8562 		CollationNameContext _localctx = new CollationNameContext(_ctx, getState());
8563 		enterRule(_localctx, 168, RULE_collationName);
8564 		try {
8565 			setState(1286);
8566 			_errHandler.sync(this);
8567 			switch (_input.LA(1)) {
8568 			case MAX:
8569 			case MIN:
8570 			case SUM:
8571 			case COUNT:
8572 			case GROUP_CONCAT:
8573 			case CAST:
8574 			case POSITION:
8575 			case SUBSTRING:
8576 			case SUBSTR:
8577 			case EXTRACT:
8578 			case TRIM:
8579 			case LAST_DAY:
8580 			case TRADITIONAL:
8581 			case TREE:
8582 			case MYSQL_MAIN:
8583 			case MYSQL_ADMIN:
8584 			case INSTANT:
8585 			case INPLACE:
8586 			case COPY:
8587 			case UL_BINARY:
8588 			case AUTOCOMMIT:
8589 			case INNODB:
8590 			case REDO_LOG:
8591 			case ACCOUNT:
8592 			case ACTION:
8593 			case ACTIVE:
8594 			case ADMIN:
8595 			case AFTER:
8596 			case AGAINST:
8597 			case AGGREGATE:
8598 			case ALGORITHM:
8599 			case ALWAYS:
8600 			case ANY:
8601 			case ARRAY:
8602 			case ASCII:
8603 			case AT:
8604 			case ATTRIBUTE:
8605 			case AUTOEXTEND_SIZE:
8606 			case AUTO_INCREMENT:
8607 			case AVG:
8608 			case BIT_XOR:
8609 			case AVG_ROW_LENGTH:
8610 			case BACKUP:
8611 			case BEGIN:
8612 			case BINLOG:
8613 			case BIT:
8614 			case BLOCK:
8615 			case BOOL:
8616 			case BOOLEAN:
8617 			case BTREE:
8618 			case BUCKETS:
8619 			case BYTE:
8620 			case CACHE:
8621 			case CASCADED:
8622 			case CATALOG_NAME:
8623 			case CHAIN:
8624 			case CHANGED:
8625 			case CHANNEL:
8626 			case CHARSET:
8627 			case CHECKSUM:
8628 			case CIPHER:
8629 			case CLASS_ORIGIN:
8630 			case CLIENT:
8631 			case CLONE:
8632 			case CLOSE:
8633 			case COALESCE:
8634 			case CODE:
8635 			case COLLATION:
8636 			case COLUMNS:
8637 			case COLUMN_FORMAT:
8638 			case COLUMN_NAME:
8639 			case COMMENT:
8640 			case COMMIT:
8641 			case COMMITTED:
8642 			case COMPACT:
8643 			case COMPLETION:
8644 			case COMPONENT:
8645 			case COMPRESSED:
8646 			case COMPRESSION:
8647 			case CONCURRENT:
8648 			case CONNECTION:
8649 			case CONSISTENT:
8650 			case CONSTRAINT_CATALOG:
8651 			case CONSTRAINT_NAME:
8652 			case CONSTRAINT_SCHEMA:
8653 			case CONTAINS:
8654 			case CONTEXT:
8655 			case CPU:
8656 			case CREATE:
8657 			case CURRENT:
8658 			case CURSOR_NAME:
8659 			case DATA:
8660 			case DATAFILE:
8661 			case DATE:
8662 			case DATETIME:
8663 			case DAY:
8664 			case DAY_MINUTE:
8665 			case DEALLOCATE:
8666 			case DEFAULT_AUTH:
8667 			case DEFINER:
8668 			case DEFINITION:
8669 			case DELAY_KEY_WRITE:
8670 			case DESCRIPTION:
8671 			case DIAGNOSTICS:
8672 			case DIRECTORY:
8673 			case DISABLE:
8674 			case DISCARD:
8675 			case DISK:
8676 			case DO:
8677 			case DUMPFILE:
8678 			case DUPLICATE:
8679 			case DYNAMIC:
8680 			case ENABLE:
8681 			case ENCRYPTION:
8682 			case END:
8683 			case ENDS:
8684 			case ENFORCED:
8685 			case ENGINE:
8686 			case ENGINES:
8687 			case ENGINE_ATTRIBUTE:
8688 			case ENUM:
8689 			case ERROR:
8690 			case ERRORS:
8691 			case ESCAPE:
8692 			case EVENT:
8693 			case EVENTS:
8694 			case EVERY:
8695 			case EXCHANGE:
8696 			case EXCLUDE:
8697 			case EXECUTE:
8698 			case EXPANSION:
8699 			case EXPIRE:
8700 			case EXPORT:
8701 			case EXTENDED:
8702 			case EXTENT_SIZE:
8703 			case FAILED_LOGIN_ATTEMPTS:
8704 			case FAST:
8705 			case FAULTS:
8706 			case FILE:
8707 			case FILE_BLOCK_SIZE:
8708 			case FILTER:
8709 			case FIRST:
8710 			case FIXED:
8711 			case FLUSH:
8712 			case FOLLOWING:
8713 			case FOLLOWS:
8714 			case FORMAT:
8715 			case FOUND:
8716 			case FULL:
8717 			case GENERAL:
8718 			case GEOMETRY:
8719 			case GEOMETRYCOLLECTION:
8720 			case GET_FORMAT:
8721 			case GET_MASTER_PUBLIC_KEY:
8722 			case GLOBAL:
8723 			case GRANTS:
8724 			case GROUP_REPLICATION:
8725 			case HANDLER:
8726 			case HASH:
8727 			case HELP:
8728 			case HISTOGRAM:
8729 			case HISTORY:
8730 			case HOST:
8731 			case HOSTS:
8732 			case HOUR:
8733 			case IDENTIFIED:
8734 			case IGNORE_SERVER_IDS:
8735 			case IMPORT:
8736 			case INACTIVE:
8737 			case INDEXES:
8738 			case INITIAL_SIZE:
8739 			case INSERT_METHOD:
8740 			case INSTALL:
8741 			case INSTANCE:
8742 			case INVISIBLE:
8743 			case INVOKER:
8744 			case IO:
8745 			case IPC:
8746 			case ISOLATION:
8747 			case ISSUER:
8748 			case JSON:
8749 			case JSON_VALUE:
8750 			case KEY:
8751 			case KEY_BLOCK_SIZE:
8752 			case LANGUAGE:
8753 			case LAST:
8754 			case LAST_VALUE:
8755 			case LEAVES:
8756 			case LESS:
8757 			case LEVEL:
8758 			case LINESTRING:
8759 			case LIST:
8760 			case LOCAL:
8761 			case LOCKED:
8762 			case LOCKS:
8763 			case LOGFILE:
8764 			case LOGS:
8765 			case MASTER:
8766 			case MASTER_AUTO_POSITION:
8767 			case MASTER_COMPRESSION_ALGORITHM:
8768 			case MASTER_CONNECT_RETRY:
8769 			case MASTER_DELAY:
8770 			case MASTER_HEARTBEAT_PERIOD:
8771 			case MASTER_HOST:
8772 			case MASTER_LOG_FILE:
8773 			case MASTER_LOG_POS:
8774 			case MASTER_PASSWORD:
8775 			case MASTER_PORT:
8776 			case MASTER_PUBLIC_KEY_PATH:
8777 			case MASTER_RETRY_COUNT:
8778 			case MASTER_SERVER_ID:
8779 			case MASTER_SSL:
8780 			case MASTER_SSL_CA:
8781 			case MASTER_SSL_CAPATH:
8782 			case MASTER_SSL_CERT:
8783 			case MASTER_SSL_CIPHER:
8784 			case MASTER_SSL_CRL:
8785 			case MASTER_SSL_CRLPATH:
8786 			case MASTER_SSL_KEY:
8787 			case MASTER_TLS_CIPHERSUITES:
8788 			case MASTER_TLS_VERSION:
8789 			case MASTER_USER:
8790 			case MASTER_ZSTD_COMPRESSION_LEVEL:
8791 			case MAXVALUE:
8792 			case MAX_CONNECTIONS_PER_HOUR:
8793 			case MAX_QUERIES_PER_HOUR:
8794 			case MAX_ROWS:
8795 			case MAX_SIZE:
8796 			case MAX_UPDATES_PER_HOUR:
8797 			case MAX_USER_CONNECTIONS:
8798 			case MEDIUM:
8799 			case MEMBER:
8800 			case MEMORY:
8801 			case MERGE:
8802 			case MESSAGE_TEXT:
8803 			case MICROSECOND:
8804 			case MIGRATE:
8805 			case MINUTE:
8806 			case MIN_ROWS:
8807 			case MODE:
8808 			case MODIFY:
8809 			case MONTH:
8810 			case MULTILINESTRING:
8811 			case MULTIPOINT:
8812 			case MULTIPOLYGON:
8813 			case MUTEX:
8814 			case MYSQL_ERRNO:
8815 			case NAME:
8816 			case NAMES:
8817 			case NATIONAL:
8818 			case NCHAR:
8819 			case NDBCLUSTER:
8820 			case NESTED:
8821 			case NETWORK_NAMESPACE:
8822 			case NEVER:
8823 			case NEW:
8824 			case NEXT:
8825 			case NO:
8826 			case NODEGROUP:
8827 			case NONE:
8828 			case NOWAIT:
8829 			case NO_WAIT:
8830 			case NULLS:
8831 			case NUMBER:
8832 			case NVARCHAR:
8833 			case OFF:
8834 			case OFFSET:
8835 			case OJ:
8836 			case OLD:
8837 			case ONE:
8838 			case ONLY:
8839 			case OPEN:
8840 			case OPTIONAL:
8841 			case OPTIONS:
8842 			case ORDINALITY:
8843 			case ORGANIZATION:
8844 			case OTHERS:
8845 			case OWNER:
8846 			case PACK_KEYS:
8847 			case PAGE:
8848 			case PARSER:
8849 			case PARTIAL:
8850 			case PARTITIONING:
8851 			case PARTITIONS:
8852 			case PASSWORD:
8853 			case PASSWORD_LOCK_TIME:
8854 			case PATH:
8855 			case PERSIST:
8856 			case PERSIST_ONLY:
8857 			case PHASE:
8858 			case PLUGIN:
8859 			case PLUGINS:
8860 			case PLUGIN_DIR:
8861 			case POINT:
8862 			case POLYGON:
8863 			case PORT:
8864 			case PRECEDES:
8865 			case PRECEDING:
8866 			case PREPARE:
8867 			case PRESERVE:
8868 			case PREV:
8869 			case PRIMARY:
8870 			case PRIVILEGES:
8871 			case PRIVILEGE_CHECKS_USER:
8872 			case PROCESS:
8873 			case PROCESSLIST:
8874 			case PROFILE:
8875 			case PROFILES:
8876 			case PROXY:
8877 			case QUARTER:
8878 			case QUERY:
8879 			case QUICK:
8880 			case RANDOM:
8881 			case READ_ONLY:
8882 			case REBUILD:
8883 			case RECOVER:
8884 			case REDO_BUFFER_SIZE:
8885 			case REDUNDANT:
8886 			case REFERENCE:
8887 			case RELAY:
8888 			case RELAYLOG:
8889 			case RELAY_LOG_FILE:
8890 			case RELAY_LOG_POS:
8891 			case RELAY_THREAD:
8892 			case RELOAD:
8893 			case REMOVE:
8894 			case REORGANIZE:
8895 			case REPAIR:
8896 			case REPEATABLE:
8897 			case REPLICATE_DO_DB:
8898 			case REPLICATE_DO_TABLE:
8899 			case REPLICATE_IGNORE_DB:
8900 			case REPLICATE_IGNORE_TABLE:
8901 			case REPLICATE_REWRITE_DB:
8902 			case REPLICATE_WILD_DO_TABLE:
8903 			case REPLICATE_WILD_IGNORE_TABLE:
8904 			case REPLICATION:
8905 			case REQUIRE_ROW_FORMAT:
8906 			case RESET:
8907 			case RESOURCE:
8908 			case RESPECT:
8909 			case RESTART:
8910 			case RESTORE:
8911 			case RESUME:
8912 			case RETAIN:
8913 			case RETURNED_SQLSTATE:
8914 			case RETURNING:
8915 			case RETURNS:
8916 			case REUSE:
8917 			case REVERSE:
8918 			case ROLE:
8919 			case ROLLBACK:
8920 			case ROLLUP:
8921 			case ROTATE:
8922 			case ROUTINE:
8923 			case ROW_COUNT:
8924 			case ROW_FORMAT:
8925 			case RTREE:
8926 			case SAVEPOINT:
8927 			case SCHEDULE:
8928 			case SCHEMA_NAME:
8929 			case SECOND:
8930 			case SECONDARY:
8931 			case SECONDARY_ENGINE:
8932 			case SECONDARY_ENGINE_ATTRIBUTE:
8933 			case SECONDARY_LOAD:
8934 			case SECONDARY_UNLOAD:
8935 			case SECURITY:
8936 			case SERIAL:
8937 			case SERIALIZABLE:
8938 			case SERVER:
8939 			case SESSION:
8940 			case SHARE:
8941 			case SHUTDOWN:
8942 			case SIGNED:
8943 			case SIMPLE:
8944 			case SLAVE:
8945 			case SLOW:
8946 			case SNAPSHOT:
8947 			case SOCKET:
8948 			case SONAME:
8949 			case SOUNDS:
8950 			case SOURCE:
8951 			case SQL_AFTER_GTIDS:
8952 			case SQL_AFTER_MTS_GAPS:
8953 			case SQL_BEFORE_GTIDS:
8954 			case SQL_BUFFER_RESULT:
8955 			case SQL_NO_CACHE:
8956 			case SQL_THREAD:
8957 			case SRID:
8958 			case STACKED:
8959 			case START:
8960 			case STARTS:
8961 			case STATS_AUTO_RECALC:
8962 			case STATS_PERSISTENT:
8963 			case STATS_SAMPLE_PAGES:
8964 			case STATUS:
8965 			case STOP:
8966 			case STORAGE:
8967 			case STREAM:
8968 			case STRING:
8969 			case SUBCLASS_ORIGIN:
8970 			case SUBJECT:
8971 			case SUBPARTITION:
8972 			case SUBPARTITIONS:
8973 			case SUPER:
8974 			case SUSPEND:
8975 			case SWAPS:
8976 			case SWITCHES:
8977 			case SYSTEM:
8978 			case TABLE:
8979 			case TABLES:
8980 			case TABLESPACE:
8981 			case TABLE_CHECKSUM:
8982 			case TABLE_NAME:
8983 			case TEMPORARY:
8984 			case TEMPTABLE:
8985 			case TEXT:
8986 			case THAN:
8987 			case THREAD_PRIORITY:
8988 			case TIES:
8989 			case TIME:
8990 			case TIMESTAMP:
8991 			case TIMESTAMP_ADD:
8992 			case TIMESTAMP_DIFF:
8993 			case TLS:
8994 			case TRANSACTION:
8995 			case TRIGGERS:
8996 			case TRUNCATE:
8997 			case TYPE:
8998 			case TYPES:
8999 			case UNBOUNDED:
9000 			case UNCOMMITTED:
9001 			case UNDEFINED:
9002 			case UNDOFILE:
9003 			case UNDO_BUFFER_SIZE:
9004 			case UNICODE:
9005 			case UNINSTALL:
9006 			case UNKNOWN:
9007 			case UNTIL:
9008 			case UPGRADE:
9009 			case USER:
9010 			case USER_RESOURCES:
9011 			case USE_FRM:
9012 			case UTC_DATE:
9013 			case UTC_TIME:
9014 			case UTC_TIMESTAMP:
9015 			case VALIDATION:
9016 			case VALUE:
9017 			case VARIABLES:
9018 			case VCPU:
9019 			case VIEW:
9020 			case VISIBLE:
9021 			case WAIT:
9022 			case WARNINGS:
9023 			case WEEK:
9024 			case WEIGHT_STRING:
9025 			case WITHOUT:
9026 			case WORK:
9027 			case WRAPPER:
9028 			case X509:
9029 			case XA:
9030 			case XID:
9031 			case XML:
9032 			case YEAR:
9033 			case YEAR_MONTH:
9034 			case SINGLE_QUOTED_TEXT:
9035 			case DOUBLE_QUOTED_TEXT:
9036 			case BQUOTA_STRING:
9037 			case UNDERSCORE_CHARSET:
9038 			case IDENTIFIER_:
9039 			case IP_ADDRESS:
9040 				enterOuterAlt(_localctx, 1);
9041 				{
9042 				setState(1284);
9043 				textOrIdentifier();
9044 				}
9045 				break;
9046 			case BINARY:
9047 				enterOuterAlt(_localctx, 2);
9048 				{
9049 				setState(1285);
9050 				match(BINARY);
9051 				}
9052 				break;
9053 			default:
9054 				throw new NoViableAltException(this);
9055 			}
9056 		}
9057 		catch (RecognitionException re) {
9058 			_localctx.exception = re;
9059 			_errHandler.reportError(this, re);
9060 			_errHandler.recover(this, re);
9061 		}
9062 		finally {
9063 			exitRule();
9064 		}
9065 		return _localctx;
9066 	}
9067 
9068 	public static class IdentifierContext extends ParserRuleContext {
9069 		public TerminalNode IDENTIFIER_() { return getToken(HiveStatementParser.IDENTIFIER_, 0); }
9070 		public IdentifierKeywordsUnambiguousContext identifierKeywordsUnambiguous() {
9071 			return getRuleContext(IdentifierKeywordsUnambiguousContext.class,0);
9072 		}
9073 		public IdentifierKeywordsAmbiguous1RolesAndLabelsContext identifierKeywordsAmbiguous1RolesAndLabels() {
9074 			return getRuleContext(IdentifierKeywordsAmbiguous1RolesAndLabelsContext.class,0);
9075 		}
9076 		public IdentifierKeywordsAmbiguous2LabelsContext identifierKeywordsAmbiguous2Labels() {
9077 			return getRuleContext(IdentifierKeywordsAmbiguous2LabelsContext.class,0);
9078 		}
9079 		public IdentifierKeywordsAmbiguous3RolesContext identifierKeywordsAmbiguous3Roles() {
9080 			return getRuleContext(IdentifierKeywordsAmbiguous3RolesContext.class,0);
9081 		}
9082 		public IdentifierKeywordsAmbiguous4SystemVariablesContext identifierKeywordsAmbiguous4SystemVariables() {
9083 			return getRuleContext(IdentifierKeywordsAmbiguous4SystemVariablesContext.class,0);
9084 		}
9085 		public CustomKeywordContext customKeyword() {
9086 			return getRuleContext(CustomKeywordContext.class,0);
9087 		}
9088 		public TerminalNode DOUBLE_QUOTED_TEXT() { return getToken(HiveStatementParser.DOUBLE_QUOTED_TEXT, 0); }
9089 		public TerminalNode UNDERSCORE_CHARSET() { return getToken(HiveStatementParser.UNDERSCORE_CHARSET, 0); }
9090 		public TerminalNode BQUOTA_STRING() { return getToken(HiveStatementParser.BQUOTA_STRING, 0); }
9091 		public IdentifierContext(ParserRuleContext parent, int invokingState) {
9092 			super(parent, invokingState);
9093 		}
9094 		@Override public int getRuleIndex() { return RULE_identifier; }
9095 		@Override
9096 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
9097 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIdentifier(this);
9098 			else return visitor.visitChildren(this);
9099 		}
9100 	}
9101 
9102 	public final IdentifierContext identifier() throws RecognitionException {
9103 		IdentifierContext _localctx = new IdentifierContext(_ctx, getState());
9104 		enterRule(_localctx, 170, RULE_identifier);
9105 		try {
9106 			setState(1298);
9107 			_errHandler.sync(this);
9108 			switch (_input.LA(1)) {
9109 			case IDENTIFIER_:
9110 				enterOuterAlt(_localctx, 1);
9111 				{
9112 				setState(1288);
9113 				match(IDENTIFIER_);
9114 				}
9115 				break;
9116 			case ACCOUNT:
9117 			case ACTION:
9118 			case ACTIVE:
9119 			case ADMIN:
9120 			case AFTER:
9121 			case AGAINST:
9122 			case AGGREGATE:
9123 			case ALGORITHM:
9124 			case ALWAYS:
9125 			case ANY:
9126 			case ARRAY:
9127 			case AT:
9128 			case ATTRIBUTE:
9129 			case AUTOEXTEND_SIZE:
9130 			case AUTO_INCREMENT:
9131 			case AVG:
9132 			case AVG_ROW_LENGTH:
9133 			case BACKUP:
9134 			case BINLOG:
9135 			case BIT:
9136 			case BLOCK:
9137 			case BOOL:
9138 			case BOOLEAN:
9139 			case BTREE:
9140 			case BUCKETS:
9141 			case CASCADED:
9142 			case CATALOG_NAME:
9143 			case CHAIN:
9144 			case CHANGED:
9145 			case CHANNEL:
9146 			case CIPHER:
9147 			case CLASS_ORIGIN:
9148 			case CLIENT:
9149 			case CLOSE:
9150 			case COALESCE:
9151 			case CODE:
9152 			case COLLATION:
9153 			case COLUMNS:
9154 			case COLUMN_FORMAT:
9155 			case COLUMN_NAME:
9156 			case COMMITTED:
9157 			case COMPACT:
9158 			case COMPLETION:
9159 			case COMPONENT:
9160 			case COMPRESSED:
9161 			case COMPRESSION:
9162 			case CONCURRENT:
9163 			case CONNECTION:
9164 			case CONSISTENT:
9165 			case CONSTRAINT_CATALOG:
9166 			case CONSTRAINT_NAME:
9167 			case CONSTRAINT_SCHEMA:
9168 			case CONTEXT:
9169 			case CPU:
9170 			case CREATE:
9171 			case CURRENT:
9172 			case CURSOR_NAME:
9173 			case DATA:
9174 			case DATAFILE:
9175 			case DATE:
9176 			case DATETIME:
9177 			case DAY:
9178 			case DAY_MINUTE:
9179 			case DEFAULT_AUTH:
9180 			case DEFINER:
9181 			case DEFINITION:
9182 			case DELAY_KEY_WRITE:
9183 			case DESCRIPTION:
9184 			case DIAGNOSTICS:
9185 			case DIRECTORY:
9186 			case DISABLE:
9187 			case DISCARD:
9188 			case DISK:
9189 			case DUMPFILE:
9190 			case DUPLICATE:
9191 			case DYNAMIC:
9192 			case ENABLE:
9193 			case ENCRYPTION:
9194 			case ENDS:
9195 			case ENFORCED:
9196 			case ENGINE:
9197 			case ENGINES:
9198 			case ENGINE_ATTRIBUTE:
9199 			case ENUM:
9200 			case ERROR:
9201 			case ERRORS:
9202 			case ESCAPE:
9203 			case EVENTS:
9204 			case EVERY:
9205 			case EXCHANGE:
9206 			case EXCLUDE:
9207 			case EXPANSION:
9208 			case EXPIRE:
9209 			case EXPORT:
9210 			case EXTENDED:
9211 			case EXTENT_SIZE:
9212 			case FAILED_LOGIN_ATTEMPTS:
9213 			case FAST:
9214 			case FAULTS:
9215 			case FILE_BLOCK_SIZE:
9216 			case FILTER:
9217 			case FIRST:
9218 			case FIXED:
9219 			case FOLLOWING:
9220 			case FORMAT:
9221 			case FOUND:
9222 			case FULL:
9223 			case GENERAL:
9224 			case GEOMETRY:
9225 			case GEOMETRYCOLLECTION:
9226 			case GET_FORMAT:
9227 			case GET_MASTER_PUBLIC_KEY:
9228 			case GRANTS:
9229 			case GROUP_REPLICATION:
9230 			case HASH:
9231 			case HISTOGRAM:
9232 			case HISTORY:
9233 			case HOST:
9234 			case HOSTS:
9235 			case HOUR:
9236 			case IDENTIFIED:
9237 			case IGNORE_SERVER_IDS:
9238 			case INACTIVE:
9239 			case INDEXES:
9240 			case INITIAL_SIZE:
9241 			case INSERT_METHOD:
9242 			case INSTANCE:
9243 			case INVISIBLE:
9244 			case INVOKER:
9245 			case IO:
9246 			case IPC:
9247 			case ISOLATION:
9248 			case ISSUER:
9249 			case JSON:
9250 			case JSON_VALUE:
9251 			case KEY:
9252 			case KEY_BLOCK_SIZE:
9253 			case LAST:
9254 			case LEAVES:
9255 			case LESS:
9256 			case LEVEL:
9257 			case LINESTRING:
9258 			case LIST:
9259 			case LOCKED:
9260 			case LOCKS:
9261 			case LOGFILE:
9262 			case LOGS:
9263 			case MASTER:
9264 			case MASTER_AUTO_POSITION:
9265 			case MASTER_COMPRESSION_ALGORITHM:
9266 			case MASTER_CONNECT_RETRY:
9267 			case MASTER_DELAY:
9268 			case MASTER_HEARTBEAT_PERIOD:
9269 			case MASTER_HOST:
9270 			case MASTER_LOG_FILE:
9271 			case MASTER_LOG_POS:
9272 			case MASTER_PASSWORD:
9273 			case MASTER_PORT:
9274 			case MASTER_PUBLIC_KEY_PATH:
9275 			case MASTER_RETRY_COUNT:
9276 			case MASTER_SERVER_ID:
9277 			case MASTER_SSL:
9278 			case MASTER_SSL_CA:
9279 			case MASTER_SSL_CAPATH:
9280 			case MASTER_SSL_CERT:
9281 			case MASTER_SSL_CIPHER:
9282 			case MASTER_SSL_CRL:
9283 			case MASTER_SSL_CRLPATH:
9284 			case MASTER_SSL_KEY:
9285 			case MASTER_TLS_CIPHERSUITES:
9286 			case MASTER_TLS_VERSION:
9287 			case MASTER_USER:
9288 			case MASTER_ZSTD_COMPRESSION_LEVEL:
9289 			case MAX_CONNECTIONS_PER_HOUR:
9290 			case MAX_QUERIES_PER_HOUR:
9291 			case MAX_ROWS:
9292 			case MAX_SIZE:
9293 			case MAX_UPDATES_PER_HOUR:
9294 			case MAX_USER_CONNECTIONS:
9295 			case MEDIUM:
9296 			case MEMBER:
9297 			case MEMORY:
9298 			case MERGE:
9299 			case MESSAGE_TEXT:
9300 			case MICROSECOND:
9301 			case MIGRATE:
9302 			case MINUTE:
9303 			case MIN_ROWS:
9304 			case MODE:
9305 			case MODIFY:
9306 			case MONTH:
9307 			case MULTILINESTRING:
9308 			case MULTIPOINT:
9309 			case MULTIPOLYGON:
9310 			case MUTEX:
9311 			case MYSQL_ERRNO:
9312 			case NAME:
9313 			case NAMES:
9314 			case NATIONAL:
9315 			case NCHAR:
9316 			case NDBCLUSTER:
9317 			case NESTED:
9318 			case NETWORK_NAMESPACE:
9319 			case NEVER:
9320 			case NEW:
9321 			case NEXT:
9322 			case NODEGROUP:
9323 			case NOWAIT:
9324 			case NO_WAIT:
9325 			case NULLS:
9326 			case NUMBER:
9327 			case NVARCHAR:
9328 			case OFF:
9329 			case OFFSET:
9330 			case OJ:
9331 			case OLD:
9332 			case ONE:
9333 			case ONLY:
9334 			case OPEN:
9335 			case OPTIONAL:
9336 			case OPTIONS:
9337 			case ORDINALITY:
9338 			case ORGANIZATION:
9339 			case OTHERS:
9340 			case OWNER:
9341 			case PACK_KEYS:
9342 			case PAGE:
9343 			case PARSER:
9344 			case PARTIAL:
9345 			case PARTITIONING:
9346 			case PARTITIONS:
9347 			case PASSWORD:
9348 			case PASSWORD_LOCK_TIME:
9349 			case PATH:
9350 			case PHASE:
9351 			case PLUGIN:
9352 			case PLUGINS:
9353 			case PLUGIN_DIR:
9354 			case POINT:
9355 			case POLYGON:
9356 			case PORT:
9357 			case PRECEDING:
9358 			case PRESERVE:
9359 			case PREV:
9360 			case PRIVILEGES:
9361 			case PRIVILEGE_CHECKS_USER:
9362 			case PROCESSLIST:
9363 			case PROFILE:
9364 			case PROFILES:
9365 			case QUARTER:
9366 			case QUERY:
9367 			case QUICK:
9368 			case RANDOM:
9369 			case READ_ONLY:
9370 			case REBUILD:
9371 			case RECOVER:
9372 			case REDO_BUFFER_SIZE:
9373 			case REDUNDANT:
9374 			case REFERENCE:
9375 			case RELAY:
9376 			case RELAYLOG:
9377 			case RELAY_LOG_FILE:
9378 			case RELAY_LOG_POS:
9379 			case RELAY_THREAD:
9380 			case REMOVE:
9381 			case REORGANIZE:
9382 			case REPEATABLE:
9383 			case REPLICATE_DO_DB:
9384 			case REPLICATE_DO_TABLE:
9385 			case REPLICATE_IGNORE_DB:
9386 			case REPLICATE_IGNORE_TABLE:
9387 			case REPLICATE_REWRITE_DB:
9388 			case REPLICATE_WILD_DO_TABLE:
9389 			case REPLICATE_WILD_IGNORE_TABLE:
9390 			case REQUIRE_ROW_FORMAT:
9391 			case RESPECT:
9392 			case RESTORE:
9393 			case RESUME:
9394 			case RETAIN:
9395 			case RETURNED_SQLSTATE:
9396 			case RETURNING:
9397 			case RETURNS:
9398 			case REUSE:
9399 			case REVERSE:
9400 			case ROLE:
9401 			case ROLLUP:
9402 			case ROTATE:
9403 			case ROUTINE:
9404 			case ROW_COUNT:
9405 			case ROW_FORMAT:
9406 			case RTREE:
9407 			case SCHEDULE:
9408 			case SCHEMA_NAME:
9409 			case SECOND:
9410 			case SECONDARY:
9411 			case SECONDARY_ENGINE:
9412 			case SECONDARY_ENGINE_ATTRIBUTE:
9413 			case SECONDARY_LOAD:
9414 			case SECONDARY_UNLOAD:
9415 			case SECURITY:
9416 			case SERIAL:
9417 			case SERIALIZABLE:
9418 			case SERVER:
9419 			case SHARE:
9420 			case SIMPLE:
9421 			case SLOW:
9422 			case SNAPSHOT:
9423 			case SOCKET:
9424 			case SONAME:
9425 			case SOUNDS:
9426 			case SOURCE:
9427 			case SQL_AFTER_GTIDS:
9428 			case SQL_AFTER_MTS_GAPS:
9429 			case SQL_BEFORE_GTIDS:
9430 			case SQL_BUFFER_RESULT:
9431 			case SQL_NO_CACHE:
9432 			case SQL_THREAD:
9433 			case SRID:
9434 			case STACKED:
9435 			case STARTS:
9436 			case STATS_AUTO_RECALC:
9437 			case STATS_PERSISTENT:
9438 			case STATS_SAMPLE_PAGES:
9439 			case STATUS:
9440 			case STORAGE:
9441 			case STREAM:
9442 			case STRING:
9443 			case SUBCLASS_ORIGIN:
9444 			case SUBJECT:
9445 			case SUBPARTITION:
9446 			case SUBPARTITIONS:
9447 			case SUSPEND:
9448 			case SWAPS:
9449 			case SWITCHES:
9450 			case SYSTEM:
9451 			case TABLE:
9452 			case TABLES:
9453 			case TABLESPACE:
9454 			case TABLE_CHECKSUM:
9455 			case TABLE_NAME:
9456 			case TEMPORARY:
9457 			case TEMPTABLE:
9458 			case TEXT:
9459 			case THAN:
9460 			case THREAD_PRIORITY:
9461 			case TIES:
9462 			case TIME:
9463 			case TIMESTAMP:
9464 			case TIMESTAMP_ADD:
9465 			case TIMESTAMP_DIFF:
9466 			case TLS:
9467 			case TRANSACTION:
9468 			case TRIGGERS:
9469 			case TYPE:
9470 			case TYPES:
9471 			case UNBOUNDED:
9472 			case UNCOMMITTED:
9473 			case UNDEFINED:
9474 			case UNDOFILE:
9475 			case UNDO_BUFFER_SIZE:
9476 			case UNKNOWN:
9477 			case UNTIL:
9478 			case UPGRADE:
9479 			case USER:
9480 			case USER_RESOURCES:
9481 			case USE_FRM:
9482 			case VALIDATION:
9483 			case VALUE:
9484 			case VARIABLES:
9485 			case VCPU:
9486 			case VIEW:
9487 			case VISIBLE:
9488 			case WAIT:
9489 			case WARNINGS:
9490 			case WEEK:
9491 			case WEIGHT_STRING:
9492 			case WITHOUT:
9493 			case WORK:
9494 			case WRAPPER:
9495 			case X509:
9496 			case XID:
9497 			case XML:
9498 			case YEAR:
9499 			case YEAR_MONTH:
9500 				enterOuterAlt(_localctx, 2);
9501 				{
9502 				setState(1289);
9503 				identifierKeywordsUnambiguous();
9504 				}
9505 				break;
9506 			case EXECUTE:
9507 			case RESTART:
9508 			case SHUTDOWN:
9509 				enterOuterAlt(_localctx, 3);
9510 				{
9511 				setState(1290);
9512 				identifierKeywordsAmbiguous1RolesAndLabels();
9513 				}
9514 				break;
9515 			case ASCII:
9516 			case BEGIN:
9517 			case BYTE:
9518 			case CACHE:
9519 			case CHARSET:
9520 			case CHECKSUM:
9521 			case CLONE:
9522 			case COMMENT:
9523 			case COMMIT:
9524 			case CONTAINS:
9525 			case DEALLOCATE:
9526 			case DO:
9527 			case END:
9528 			case FLUSH:
9529 			case FOLLOWS:
9530 			case HANDLER:
9531 			case HELP:
9532 			case IMPORT:
9533 			case INSTALL:
9534 			case LANGUAGE:
9535 			case NO:
9536 			case PRECEDES:
9537 			case PREPARE:
9538 			case REPAIR:
9539 			case RESET:
9540 			case ROLLBACK:
9541 			case SAVEPOINT:
9542 			case SIGNED:
9543 			case SLAVE:
9544 			case START:
9545 			case STOP:
9546 			case TRUNCATE:
9547 			case UNICODE:
9548 			case UNINSTALL:
9549 			case XA:
9550 				enterOuterAlt(_localctx, 4);
9551 				{
9552 				setState(1291);
9553 				identifierKeywordsAmbiguous2Labels();
9554 				}
9555 				break;
9556 			case EVENT:
9557 			case FILE:
9558 			case NONE:
9559 			case PROCESS:
9560 			case PROXY:
9561 			case RELOAD:
9562 			case REPLICATION:
9563 			case RESOURCE:
9564 			case SUPER:
9565 				enterOuterAlt(_localctx, 5);
9566 				{
9567 				setState(1292);
9568 				identifierKeywordsAmbiguous3Roles();
9569 				}
9570 				break;
9571 			case GLOBAL:
9572 			case LOCAL:
9573 			case PERSIST:
9574 			case PERSIST_ONLY:
9575 			case SESSION:
9576 				enterOuterAlt(_localctx, 6);
9577 				{
9578 				setState(1293);
9579 				identifierKeywordsAmbiguous4SystemVariables();
9580 				}
9581 				break;
9582 			case MAX:
9583 			case MIN:
9584 			case SUM:
9585 			case COUNT:
9586 			case GROUP_CONCAT:
9587 			case CAST:
9588 			case POSITION:
9589 			case SUBSTRING:
9590 			case SUBSTR:
9591 			case EXTRACT:
9592 			case TRIM:
9593 			case LAST_DAY:
9594 			case TRADITIONAL:
9595 			case TREE:
9596 			case MYSQL_MAIN:
9597 			case MYSQL_ADMIN:
9598 			case INSTANT:
9599 			case INPLACE:
9600 			case COPY:
9601 			case UL_BINARY:
9602 			case AUTOCOMMIT:
9603 			case INNODB:
9604 			case REDO_LOG:
9605 			case BIT_XOR:
9606 			case LAST_VALUE:
9607 			case MAXVALUE:
9608 			case PRIMARY:
9609 			case UTC_DATE:
9610 			case UTC_TIME:
9611 			case UTC_TIMESTAMP:
9612 				enterOuterAlt(_localctx, 7);
9613 				{
9614 				setState(1294);
9615 				customKeyword();
9616 				}
9617 				break;
9618 			case DOUBLE_QUOTED_TEXT:
9619 				enterOuterAlt(_localctx, 8);
9620 				{
9621 				setState(1295);
9622 				match(DOUBLE_QUOTED_TEXT);
9623 				}
9624 				break;
9625 			case UNDERSCORE_CHARSET:
9626 				enterOuterAlt(_localctx, 9);
9627 				{
9628 				setState(1296);
9629 				match(UNDERSCORE_CHARSET);
9630 				}
9631 				break;
9632 			case BQUOTA_STRING:
9633 				enterOuterAlt(_localctx, 10);
9634 				{
9635 				setState(1297);
9636 				match(BQUOTA_STRING);
9637 				}
9638 				break;
9639 			default:
9640 				throw new NoViableAltException(this);
9641 			}
9642 		}
9643 		catch (RecognitionException re) {
9644 			_localctx.exception = re;
9645 			_errHandler.reportError(this, re);
9646 			_errHandler.recover(this, re);
9647 		}
9648 		finally {
9649 			exitRule();
9650 		}
9651 		return _localctx;
9652 	}
9653 
9654 	public static class IdentifierKeywordsUnambiguousContext extends ParserRuleContext {
9655 		public TerminalNode ACTION() { return getToken(HiveStatementParser.ACTION, 0); }
9656 		public TerminalNode ACCOUNT() { return getToken(HiveStatementParser.ACCOUNT, 0); }
9657 		public TerminalNode ACTIVE() { return getToken(HiveStatementParser.ACTIVE, 0); }
9658 		public TerminalNode ADMIN() { return getToken(HiveStatementParser.ADMIN, 0); }
9659 		public TerminalNode AFTER() { return getToken(HiveStatementParser.AFTER, 0); }
9660 		public TerminalNode AGAINST() { return getToken(HiveStatementParser.AGAINST, 0); }
9661 		public TerminalNode AGGREGATE() { return getToken(HiveStatementParser.AGGREGATE, 0); }
9662 		public TerminalNode ALGORITHM() { return getToken(HiveStatementParser.ALGORITHM, 0); }
9663 		public TerminalNode ALWAYS() { return getToken(HiveStatementParser.ALWAYS, 0); }
9664 		public TerminalNode ANY() { return getToken(HiveStatementParser.ANY, 0); }
9665 		public TerminalNode ARRAY() { return getToken(HiveStatementParser.ARRAY, 0); }
9666 		public TerminalNode AT() { return getToken(HiveStatementParser.AT, 0); }
9667 		public TerminalNode ATTRIBUTE() { return getToken(HiveStatementParser.ATTRIBUTE, 0); }
9668 		public TerminalNode AUTOEXTEND_SIZE() { return getToken(HiveStatementParser.AUTOEXTEND_SIZE, 0); }
9669 		public TerminalNode AUTO_INCREMENT() { return getToken(HiveStatementParser.AUTO_INCREMENT, 0); }
9670 		public TerminalNode AVG_ROW_LENGTH() { return getToken(HiveStatementParser.AVG_ROW_LENGTH, 0); }
9671 		public TerminalNode AVG() { return getToken(HiveStatementParser.AVG, 0); }
9672 		public TerminalNode BACKUP() { return getToken(HiveStatementParser.BACKUP, 0); }
9673 		public TerminalNode BINLOG() { return getToken(HiveStatementParser.BINLOG, 0); }
9674 		public TerminalNode BIT() { return getToken(HiveStatementParser.BIT, 0); }
9675 		public TerminalNode BLOCK() { return getToken(HiveStatementParser.BLOCK, 0); }
9676 		public TerminalNode BOOLEAN() { return getToken(HiveStatementParser.BOOLEAN, 0); }
9677 		public TerminalNode BOOL() { return getToken(HiveStatementParser.BOOL, 0); }
9678 		public TerminalNode BTREE() { return getToken(HiveStatementParser.BTREE, 0); }
9679 		public TerminalNode BUCKETS() { return getToken(HiveStatementParser.BUCKETS, 0); }
9680 		public TerminalNode CASCADED() { return getToken(HiveStatementParser.CASCADED, 0); }
9681 		public TerminalNode CATALOG_NAME() { return getToken(HiveStatementParser.CATALOG_NAME, 0); }
9682 		public TerminalNode CHAIN() { return getToken(HiveStatementParser.CHAIN, 0); }
9683 		public TerminalNode CHANGED() { return getToken(HiveStatementParser.CHANGED, 0); }
9684 		public TerminalNode CHANNEL() { return getToken(HiveStatementParser.CHANNEL, 0); }
9685 		public TerminalNode CIPHER() { return getToken(HiveStatementParser.CIPHER, 0); }
9686 		public TerminalNode CLASS_ORIGIN() { return getToken(HiveStatementParser.CLASS_ORIGIN, 0); }
9687 		public TerminalNode CLIENT() { return getToken(HiveStatementParser.CLIENT, 0); }
9688 		public TerminalNode CLOSE() { return getToken(HiveStatementParser.CLOSE, 0); }
9689 		public TerminalNode COALESCE() { return getToken(HiveStatementParser.COALESCE, 0); }
9690 		public TerminalNode CODE() { return getToken(HiveStatementParser.CODE, 0); }
9691 		public TerminalNode COLLATION() { return getToken(HiveStatementParser.COLLATION, 0); }
9692 		public TerminalNode COLUMNS() { return getToken(HiveStatementParser.COLUMNS, 0); }
9693 		public TerminalNode COLUMN_FORMAT() { return getToken(HiveStatementParser.COLUMN_FORMAT, 0); }
9694 		public TerminalNode COLUMN_NAME() { return getToken(HiveStatementParser.COLUMN_NAME, 0); }
9695 		public TerminalNode COMMITTED() { return getToken(HiveStatementParser.COMMITTED, 0); }
9696 		public TerminalNode COMPACT() { return getToken(HiveStatementParser.COMPACT, 0); }
9697 		public TerminalNode COMPLETION() { return getToken(HiveStatementParser.COMPLETION, 0); }
9698 		public TerminalNode COMPONENT() { return getToken(HiveStatementParser.COMPONENT, 0); }
9699 		public TerminalNode COMPRESSED() { return getToken(HiveStatementParser.COMPRESSED, 0); }
9700 		public TerminalNode COMPRESSION() { return getToken(HiveStatementParser.COMPRESSION, 0); }
9701 		public TerminalNode CONCURRENT() { return getToken(HiveStatementParser.CONCURRENT, 0); }
9702 		public TerminalNode CONNECTION() { return getToken(HiveStatementParser.CONNECTION, 0); }
9703 		public TerminalNode CONSISTENT() { return getToken(HiveStatementParser.CONSISTENT, 0); }
9704 		public TerminalNode CONSTRAINT_CATALOG() { return getToken(HiveStatementParser.CONSTRAINT_CATALOG, 0); }
9705 		public TerminalNode CONSTRAINT_NAME() { return getToken(HiveStatementParser.CONSTRAINT_NAME, 0); }
9706 		public TerminalNode CONSTRAINT_SCHEMA() { return getToken(HiveStatementParser.CONSTRAINT_SCHEMA, 0); }
9707 		public TerminalNode CONTEXT() { return getToken(HiveStatementParser.CONTEXT, 0); }
9708 		public TerminalNode CPU() { return getToken(HiveStatementParser.CPU, 0); }
9709 		public TerminalNode CREATE() { return getToken(HiveStatementParser.CREATE, 0); }
9710 		public TerminalNode CURRENT() { return getToken(HiveStatementParser.CURRENT, 0); }
9711 		public TerminalNode CURSOR_NAME() { return getToken(HiveStatementParser.CURSOR_NAME, 0); }
9712 		public TerminalNode DATAFILE() { return getToken(HiveStatementParser.DATAFILE, 0); }
9713 		public TerminalNode DATA() { return getToken(HiveStatementParser.DATA, 0); }
9714 		public TerminalNode DATETIME() { return getToken(HiveStatementParser.DATETIME, 0); }
9715 		public TerminalNode DATE() { return getToken(HiveStatementParser.DATE, 0); }
9716 		public TerminalNode DAY() { return getToken(HiveStatementParser.DAY, 0); }
9717 		public TerminalNode DAY_MINUTE() { return getToken(HiveStatementParser.DAY_MINUTE, 0); }
9718 		public TerminalNode DEFAULT_AUTH() { return getToken(HiveStatementParser.DEFAULT_AUTH, 0); }
9719 		public TerminalNode DEFINER() { return getToken(HiveStatementParser.DEFINER, 0); }
9720 		public TerminalNode DEFINITION() { return getToken(HiveStatementParser.DEFINITION, 0); }
9721 		public TerminalNode DELAY_KEY_WRITE() { return getToken(HiveStatementParser.DELAY_KEY_WRITE, 0); }
9722 		public TerminalNode DESCRIPTION() { return getToken(HiveStatementParser.DESCRIPTION, 0); }
9723 		public TerminalNode DIAGNOSTICS() { return getToken(HiveStatementParser.DIAGNOSTICS, 0); }
9724 		public TerminalNode DIRECTORY() { return getToken(HiveStatementParser.DIRECTORY, 0); }
9725 		public TerminalNode DISABLE() { return getToken(HiveStatementParser.DISABLE, 0); }
9726 		public TerminalNode DISCARD() { return getToken(HiveStatementParser.DISCARD, 0); }
9727 		public TerminalNode DISK() { return getToken(HiveStatementParser.DISK, 0); }
9728 		public TerminalNode DUMPFILE() { return getToken(HiveStatementParser.DUMPFILE, 0); }
9729 		public TerminalNode DUPLICATE() { return getToken(HiveStatementParser.DUPLICATE, 0); }
9730 		public TerminalNode DYNAMIC() { return getToken(HiveStatementParser.DYNAMIC, 0); }
9731 		public TerminalNode ENABLE() { return getToken(HiveStatementParser.ENABLE, 0); }
9732 		public TerminalNode ENCRYPTION() { return getToken(HiveStatementParser.ENCRYPTION, 0); }
9733 		public TerminalNode ENDS() { return getToken(HiveStatementParser.ENDS, 0); }
9734 		public TerminalNode ENFORCED() { return getToken(HiveStatementParser.ENFORCED, 0); }
9735 		public TerminalNode ENGINES() { return getToken(HiveStatementParser.ENGINES, 0); }
9736 		public TerminalNode ENGINE() { return getToken(HiveStatementParser.ENGINE, 0); }
9737 		public TerminalNode ENGINE_ATTRIBUTE() { return getToken(HiveStatementParser.ENGINE_ATTRIBUTE, 0); }
9738 		public TerminalNode ENUM() { return getToken(HiveStatementParser.ENUM, 0); }
9739 		public TerminalNode ERRORS() { return getToken(HiveStatementParser.ERRORS, 0); }
9740 		public TerminalNode ERROR() { return getToken(HiveStatementParser.ERROR, 0); }
9741 		public TerminalNode ESCAPE() { return getToken(HiveStatementParser.ESCAPE, 0); }
9742 		public TerminalNode EVENTS() { return getToken(HiveStatementParser.EVENTS, 0); }
9743 		public TerminalNode EVERY() { return getToken(HiveStatementParser.EVERY, 0); }
9744 		public TerminalNode EXCHANGE() { return getToken(HiveStatementParser.EXCHANGE, 0); }
9745 		public TerminalNode EXCLUDE() { return getToken(HiveStatementParser.EXCLUDE, 0); }
9746 		public TerminalNode EXPANSION() { return getToken(HiveStatementParser.EXPANSION, 0); }
9747 		public TerminalNode EXPIRE() { return getToken(HiveStatementParser.EXPIRE, 0); }
9748 		public TerminalNode EXPORT() { return getToken(HiveStatementParser.EXPORT, 0); }
9749 		public TerminalNode EXTENDED() { return getToken(HiveStatementParser.EXTENDED, 0); }
9750 		public TerminalNode EXTENT_SIZE() { return getToken(HiveStatementParser.EXTENT_SIZE, 0); }
9751 		public TerminalNode FAILED_LOGIN_ATTEMPTS() { return getToken(HiveStatementParser.FAILED_LOGIN_ATTEMPTS, 0); }
9752 		public TerminalNode FAST() { return getToken(HiveStatementParser.FAST, 0); }
9753 		public TerminalNode FAULTS() { return getToken(HiveStatementParser.FAULTS, 0); }
9754 		public TerminalNode FILE_BLOCK_SIZE() { return getToken(HiveStatementParser.FILE_BLOCK_SIZE, 0); }
9755 		public TerminalNode FILTER() { return getToken(HiveStatementParser.FILTER, 0); }
9756 		public TerminalNode FIRST() { return getToken(HiveStatementParser.FIRST, 0); }
9757 		public TerminalNode FIXED() { return getToken(HiveStatementParser.FIXED, 0); }
9758 		public TerminalNode FOLLOWING() { return getToken(HiveStatementParser.FOLLOWING, 0); }
9759 		public TerminalNode FORMAT() { return getToken(HiveStatementParser.FORMAT, 0); }
9760 		public TerminalNode FOUND() { return getToken(HiveStatementParser.FOUND, 0); }
9761 		public TerminalNode FULL() { return getToken(HiveStatementParser.FULL, 0); }
9762 		public TerminalNode GENERAL() { return getToken(HiveStatementParser.GENERAL, 0); }
9763 		public TerminalNode GEOMETRYCOLLECTION() { return getToken(HiveStatementParser.GEOMETRYCOLLECTION, 0); }
9764 		public TerminalNode GEOMETRY() { return getToken(HiveStatementParser.GEOMETRY, 0); }
9765 		public TerminalNode GET_FORMAT() { return getToken(HiveStatementParser.GET_FORMAT, 0); }
9766 		public TerminalNode GET_MASTER_PUBLIC_KEY() { return getToken(HiveStatementParser.GET_MASTER_PUBLIC_KEY, 0); }
9767 		public TerminalNode GRANTS() { return getToken(HiveStatementParser.GRANTS, 0); }
9768 		public TerminalNode GROUP_REPLICATION() { return getToken(HiveStatementParser.GROUP_REPLICATION, 0); }
9769 		public TerminalNode HASH() { return getToken(HiveStatementParser.HASH, 0); }
9770 		public TerminalNode HISTOGRAM() { return getToken(HiveStatementParser.HISTOGRAM, 0); }
9771 		public TerminalNode HISTORY() { return getToken(HiveStatementParser.HISTORY, 0); }
9772 		public TerminalNode HOSTS() { return getToken(HiveStatementParser.HOSTS, 0); }
9773 		public TerminalNode HOST() { return getToken(HiveStatementParser.HOST, 0); }
9774 		public TerminalNode HOUR() { return getToken(HiveStatementParser.HOUR, 0); }
9775 		public TerminalNode IDENTIFIED() { return getToken(HiveStatementParser.IDENTIFIED, 0); }
9776 		public TerminalNode IGNORE_SERVER_IDS() { return getToken(HiveStatementParser.IGNORE_SERVER_IDS, 0); }
9777 		public TerminalNode INACTIVE() { return getToken(HiveStatementParser.INACTIVE, 0); }
9778 		public TerminalNode INDEXES() { return getToken(HiveStatementParser.INDEXES, 0); }
9779 		public TerminalNode INITIAL_SIZE() { return getToken(HiveStatementParser.INITIAL_SIZE, 0); }
9780 		public TerminalNode INSERT_METHOD() { return getToken(HiveStatementParser.INSERT_METHOD, 0); }
9781 		public TerminalNode INSTANCE() { return getToken(HiveStatementParser.INSTANCE, 0); }
9782 		public TerminalNode INVISIBLE() { return getToken(HiveStatementParser.INVISIBLE, 0); }
9783 		public TerminalNode INVOKER() { return getToken(HiveStatementParser.INVOKER, 0); }
9784 		public TerminalNode IO() { return getToken(HiveStatementParser.IO, 0); }
9785 		public TerminalNode IPC() { return getToken(HiveStatementParser.IPC, 0); }
9786 		public TerminalNode ISOLATION() { return getToken(HiveStatementParser.ISOLATION, 0); }
9787 		public TerminalNode ISSUER() { return getToken(HiveStatementParser.ISSUER, 0); }
9788 		public TerminalNode JSON() { return getToken(HiveStatementParser.JSON, 0); }
9789 		public TerminalNode JSON_VALUE() { return getToken(HiveStatementParser.JSON_VALUE, 0); }
9790 		public TerminalNode KEY() { return getToken(HiveStatementParser.KEY, 0); }
9791 		public TerminalNode KEY_BLOCK_SIZE() { return getToken(HiveStatementParser.KEY_BLOCK_SIZE, 0); }
9792 		public TerminalNode LAST() { return getToken(HiveStatementParser.LAST, 0); }
9793 		public TerminalNode LEAVES() { return getToken(HiveStatementParser.LEAVES, 0); }
9794 		public TerminalNode LESS() { return getToken(HiveStatementParser.LESS, 0); }
9795 		public TerminalNode LEVEL() { return getToken(HiveStatementParser.LEVEL, 0); }
9796 		public TerminalNode LINESTRING() { return getToken(HiveStatementParser.LINESTRING, 0); }
9797 		public TerminalNode LIST() { return getToken(HiveStatementParser.LIST, 0); }
9798 		public TerminalNode LOCKED() { return getToken(HiveStatementParser.LOCKED, 0); }
9799 		public TerminalNode LOCKS() { return getToken(HiveStatementParser.LOCKS, 0); }
9800 		public TerminalNode LOGFILE() { return getToken(HiveStatementParser.LOGFILE, 0); }
9801 		public TerminalNode LOGS() { return getToken(HiveStatementParser.LOGS, 0); }
9802 		public TerminalNode MASTER_AUTO_POSITION() { return getToken(HiveStatementParser.MASTER_AUTO_POSITION, 0); }
9803 		public TerminalNode MASTER_COMPRESSION_ALGORITHM() { return getToken(HiveStatementParser.MASTER_COMPRESSION_ALGORITHM, 0); }
9804 		public TerminalNode MASTER_CONNECT_RETRY() { return getToken(HiveStatementParser.MASTER_CONNECT_RETRY, 0); }
9805 		public TerminalNode MASTER_DELAY() { return getToken(HiveStatementParser.MASTER_DELAY, 0); }
9806 		public TerminalNode MASTER_HEARTBEAT_PERIOD() { return getToken(HiveStatementParser.MASTER_HEARTBEAT_PERIOD, 0); }
9807 		public TerminalNode MASTER_HOST() { return getToken(HiveStatementParser.MASTER_HOST, 0); }
9808 		public TerminalNode NETWORK_NAMESPACE() { return getToken(HiveStatementParser.NETWORK_NAMESPACE, 0); }
9809 		public TerminalNode MASTER_LOG_FILE() { return getToken(HiveStatementParser.MASTER_LOG_FILE, 0); }
9810 		public TerminalNode MASTER_LOG_POS() { return getToken(HiveStatementParser.MASTER_LOG_POS, 0); }
9811 		public TerminalNode MASTER_PASSWORD() { return getToken(HiveStatementParser.MASTER_PASSWORD, 0); }
9812 		public TerminalNode MASTER_PORT() { return getToken(HiveStatementParser.MASTER_PORT, 0); }
9813 		public TerminalNode MASTER_PUBLIC_KEY_PATH() { return getToken(HiveStatementParser.MASTER_PUBLIC_KEY_PATH, 0); }
9814 		public TerminalNode MASTER_RETRY_COUNT() { return getToken(HiveStatementParser.MASTER_RETRY_COUNT, 0); }
9815 		public TerminalNode MASTER_SERVER_ID() { return getToken(HiveStatementParser.MASTER_SERVER_ID, 0); }
9816 		public TerminalNode MASTER_SSL_CAPATH() { return getToken(HiveStatementParser.MASTER_SSL_CAPATH, 0); }
9817 		public TerminalNode MASTER_SSL_CA() { return getToken(HiveStatementParser.MASTER_SSL_CA, 0); }
9818 		public TerminalNode MASTER_SSL_CERT() { return getToken(HiveStatementParser.MASTER_SSL_CERT, 0); }
9819 		public TerminalNode MASTER_SSL_CIPHER() { return getToken(HiveStatementParser.MASTER_SSL_CIPHER, 0); }
9820 		public TerminalNode MASTER_SSL_CRLPATH() { return getToken(HiveStatementParser.MASTER_SSL_CRLPATH, 0); }
9821 		public TerminalNode MASTER_SSL_CRL() { return getToken(HiveStatementParser.MASTER_SSL_CRL, 0); }
9822 		public TerminalNode MASTER_SSL_KEY() { return getToken(HiveStatementParser.MASTER_SSL_KEY, 0); }
9823 		public TerminalNode MASTER_SSL() { return getToken(HiveStatementParser.MASTER_SSL, 0); }
9824 		public TerminalNode MASTER() { return getToken(HiveStatementParser.MASTER, 0); }
9825 		public TerminalNode MASTER_TLS_CIPHERSUITES() { return getToken(HiveStatementParser.MASTER_TLS_CIPHERSUITES, 0); }
9826 		public TerminalNode MASTER_TLS_VERSION() { return getToken(HiveStatementParser.MASTER_TLS_VERSION, 0); }
9827 		public TerminalNode MASTER_USER() { return getToken(HiveStatementParser.MASTER_USER, 0); }
9828 		public TerminalNode MASTER_ZSTD_COMPRESSION_LEVEL() { return getToken(HiveStatementParser.MASTER_ZSTD_COMPRESSION_LEVEL, 0); }
9829 		public TerminalNode MAX_CONNECTIONS_PER_HOUR() { return getToken(HiveStatementParser.MAX_CONNECTIONS_PER_HOUR, 0); }
9830 		public TerminalNode MAX_QUERIES_PER_HOUR() { return getToken(HiveStatementParser.MAX_QUERIES_PER_HOUR, 0); }
9831 		public TerminalNode MAX_ROWS() { return getToken(HiveStatementParser.MAX_ROWS, 0); }
9832 		public TerminalNode MAX_SIZE() { return getToken(HiveStatementParser.MAX_SIZE, 0); }
9833 		public TerminalNode MAX_UPDATES_PER_HOUR() { return getToken(HiveStatementParser.MAX_UPDATES_PER_HOUR, 0); }
9834 		public TerminalNode MAX_USER_CONNECTIONS() { return getToken(HiveStatementParser.MAX_USER_CONNECTIONS, 0); }
9835 		public TerminalNode MEDIUM() { return getToken(HiveStatementParser.MEDIUM, 0); }
9836 		public TerminalNode MEMBER() { return getToken(HiveStatementParser.MEMBER, 0); }
9837 		public TerminalNode MEMORY() { return getToken(HiveStatementParser.MEMORY, 0); }
9838 		public TerminalNode MERGE() { return getToken(HiveStatementParser.MERGE, 0); }
9839 		public TerminalNode MESSAGE_TEXT() { return getToken(HiveStatementParser.MESSAGE_TEXT, 0); }
9840 		public TerminalNode MICROSECOND() { return getToken(HiveStatementParser.MICROSECOND, 0); }
9841 		public TerminalNode MIGRATE() { return getToken(HiveStatementParser.MIGRATE, 0); }
9842 		public TerminalNode MINUTE() { return getToken(HiveStatementParser.MINUTE, 0); }
9843 		public TerminalNode MIN_ROWS() { return getToken(HiveStatementParser.MIN_ROWS, 0); }
9844 		public TerminalNode MODE() { return getToken(HiveStatementParser.MODE, 0); }
9845 		public TerminalNode MODIFY() { return getToken(HiveStatementParser.MODIFY, 0); }
9846 		public TerminalNode MONTH() { return getToken(HiveStatementParser.MONTH, 0); }
9847 		public TerminalNode MULTILINESTRING() { return getToken(HiveStatementParser.MULTILINESTRING, 0); }
9848 		public TerminalNode MULTIPOINT() { return getToken(HiveStatementParser.MULTIPOINT, 0); }
9849 		public TerminalNode MULTIPOLYGON() { return getToken(HiveStatementParser.MULTIPOLYGON, 0); }
9850 		public TerminalNode MUTEX() { return getToken(HiveStatementParser.MUTEX, 0); }
9851 		public TerminalNode MYSQL_ERRNO() { return getToken(HiveStatementParser.MYSQL_ERRNO, 0); }
9852 		public TerminalNode NAMES() { return getToken(HiveStatementParser.NAMES, 0); }
9853 		public TerminalNode NAME() { return getToken(HiveStatementParser.NAME, 0); }
9854 		public TerminalNode NATIONAL() { return getToken(HiveStatementParser.NATIONAL, 0); }
9855 		public TerminalNode NCHAR() { return getToken(HiveStatementParser.NCHAR, 0); }
9856 		public TerminalNode NDBCLUSTER() { return getToken(HiveStatementParser.NDBCLUSTER, 0); }
9857 		public TerminalNode NESTED() { return getToken(HiveStatementParser.NESTED, 0); }
9858 		public TerminalNode NEVER() { return getToken(HiveStatementParser.NEVER, 0); }
9859 		public TerminalNode NEW() { return getToken(HiveStatementParser.NEW, 0); }
9860 		public TerminalNode NEXT() { return getToken(HiveStatementParser.NEXT, 0); }
9861 		public TerminalNode NODEGROUP() { return getToken(HiveStatementParser.NODEGROUP, 0); }
9862 		public TerminalNode NOWAIT() { return getToken(HiveStatementParser.NOWAIT, 0); }
9863 		public TerminalNode NO_WAIT() { return getToken(HiveStatementParser.NO_WAIT, 0); }
9864 		public TerminalNode NULLS() { return getToken(HiveStatementParser.NULLS, 0); }
9865 		public TerminalNode NUMBER() { return getToken(HiveStatementParser.NUMBER, 0); }
9866 		public TerminalNode NVARCHAR() { return getToken(HiveStatementParser.NVARCHAR, 0); }
9867 		public TerminalNode OFF() { return getToken(HiveStatementParser.OFF, 0); }
9868 		public TerminalNode OFFSET() { return getToken(HiveStatementParser.OFFSET, 0); }
9869 		public TerminalNode OJ() { return getToken(HiveStatementParser.OJ, 0); }
9870 		public TerminalNode OLD() { return getToken(HiveStatementParser.OLD, 0); }
9871 		public TerminalNode ONE() { return getToken(HiveStatementParser.ONE, 0); }
9872 		public TerminalNode ONLY() { return getToken(HiveStatementParser.ONLY, 0); }
9873 		public TerminalNode OPEN() { return getToken(HiveStatementParser.OPEN, 0); }
9874 		public TerminalNode OPTIONAL() { return getToken(HiveStatementParser.OPTIONAL, 0); }
9875 		public TerminalNode OPTIONS() { return getToken(HiveStatementParser.OPTIONS, 0); }
9876 		public TerminalNode ORDINALITY() { return getToken(HiveStatementParser.ORDINALITY, 0); }
9877 		public TerminalNode ORGANIZATION() { return getToken(HiveStatementParser.ORGANIZATION, 0); }
9878 		public TerminalNode OTHERS() { return getToken(HiveStatementParser.OTHERS, 0); }
9879 		public TerminalNode OWNER() { return getToken(HiveStatementParser.OWNER, 0); }
9880 		public TerminalNode PACK_KEYS() { return getToken(HiveStatementParser.PACK_KEYS, 0); }
9881 		public TerminalNode PAGE() { return getToken(HiveStatementParser.PAGE, 0); }
9882 		public TerminalNode PARSER() { return getToken(HiveStatementParser.PARSER, 0); }
9883 		public TerminalNode PARTIAL() { return getToken(HiveStatementParser.PARTIAL, 0); }
9884 		public TerminalNode PARTITIONING() { return getToken(HiveStatementParser.PARTITIONING, 0); }
9885 		public TerminalNode PARTITIONS() { return getToken(HiveStatementParser.PARTITIONS, 0); }
9886 		public TerminalNode PASSWORD() { return getToken(HiveStatementParser.PASSWORD, 0); }
9887 		public TerminalNode PASSWORD_LOCK_TIME() { return getToken(HiveStatementParser.PASSWORD_LOCK_TIME, 0); }
9888 		public TerminalNode PATH() { return getToken(HiveStatementParser.PATH, 0); }
9889 		public TerminalNode PHASE() { return getToken(HiveStatementParser.PHASE, 0); }
9890 		public TerminalNode PLUGINS() { return getToken(HiveStatementParser.PLUGINS, 0); }
9891 		public TerminalNode PLUGIN_DIR() { return getToken(HiveStatementParser.PLUGIN_DIR, 0); }
9892 		public TerminalNode PLUGIN() { return getToken(HiveStatementParser.PLUGIN, 0); }
9893 		public TerminalNode POINT() { return getToken(HiveStatementParser.POINT, 0); }
9894 		public TerminalNode POLYGON() { return getToken(HiveStatementParser.POLYGON, 0); }
9895 		public TerminalNode PORT() { return getToken(HiveStatementParser.PORT, 0); }
9896 		public TerminalNode PRECEDING() { return getToken(HiveStatementParser.PRECEDING, 0); }
9897 		public TerminalNode PRESERVE() { return getToken(HiveStatementParser.PRESERVE, 0); }
9898 		public TerminalNode PREV() { return getToken(HiveStatementParser.PREV, 0); }
9899 		public TerminalNode PRIVILEGES() { return getToken(HiveStatementParser.PRIVILEGES, 0); }
9900 		public TerminalNode PRIVILEGE_CHECKS_USER() { return getToken(HiveStatementParser.PRIVILEGE_CHECKS_USER, 0); }
9901 		public TerminalNode PROCESSLIST() { return getToken(HiveStatementParser.PROCESSLIST, 0); }
9902 		public TerminalNode PROFILES() { return getToken(HiveStatementParser.PROFILES, 0); }
9903 		public TerminalNode PROFILE() { return getToken(HiveStatementParser.PROFILE, 0); }
9904 		public TerminalNode QUARTER() { return getToken(HiveStatementParser.QUARTER, 0); }
9905 		public TerminalNode QUERY() { return getToken(HiveStatementParser.QUERY, 0); }
9906 		public TerminalNode QUICK() { return getToken(HiveStatementParser.QUICK, 0); }
9907 		public TerminalNode RANDOM() { return getToken(HiveStatementParser.RANDOM, 0); }
9908 		public TerminalNode READ_ONLY() { return getToken(HiveStatementParser.READ_ONLY, 0); }
9909 		public TerminalNode REBUILD() { return getToken(HiveStatementParser.REBUILD, 0); }
9910 		public TerminalNode RECOVER() { return getToken(HiveStatementParser.RECOVER, 0); }
9911 		public TerminalNode REDO_BUFFER_SIZE() { return getToken(HiveStatementParser.REDO_BUFFER_SIZE, 0); }
9912 		public TerminalNode REDUNDANT() { return getToken(HiveStatementParser.REDUNDANT, 0); }
9913 		public TerminalNode REFERENCE() { return getToken(HiveStatementParser.REFERENCE, 0); }
9914 		public TerminalNode RELAY() { return getToken(HiveStatementParser.RELAY, 0); }
9915 		public TerminalNode RELAYLOG() { return getToken(HiveStatementParser.RELAYLOG, 0); }
9916 		public TerminalNode RELAY_LOG_FILE() { return getToken(HiveStatementParser.RELAY_LOG_FILE, 0); }
9917 		public TerminalNode RELAY_LOG_POS() { return getToken(HiveStatementParser.RELAY_LOG_POS, 0); }
9918 		public TerminalNode RELAY_THREAD() { return getToken(HiveStatementParser.RELAY_THREAD, 0); }
9919 		public TerminalNode REMOVE() { return getToken(HiveStatementParser.REMOVE, 0); }
9920 		public TerminalNode REORGANIZE() { return getToken(HiveStatementParser.REORGANIZE, 0); }
9921 		public TerminalNode REPEATABLE() { return getToken(HiveStatementParser.REPEATABLE, 0); }
9922 		public TerminalNode REPLICATE_DO_DB() { return getToken(HiveStatementParser.REPLICATE_DO_DB, 0); }
9923 		public TerminalNode REPLICATE_DO_TABLE() { return getToken(HiveStatementParser.REPLICATE_DO_TABLE, 0); }
9924 		public TerminalNode REPLICATE_IGNORE_DB() { return getToken(HiveStatementParser.REPLICATE_IGNORE_DB, 0); }
9925 		public TerminalNode REPLICATE_IGNORE_TABLE() { return getToken(HiveStatementParser.REPLICATE_IGNORE_TABLE, 0); }
9926 		public TerminalNode REPLICATE_REWRITE_DB() { return getToken(HiveStatementParser.REPLICATE_REWRITE_DB, 0); }
9927 		public TerminalNode REPLICATE_WILD_DO_TABLE() { return getToken(HiveStatementParser.REPLICATE_WILD_DO_TABLE, 0); }
9928 		public TerminalNode REPLICATE_WILD_IGNORE_TABLE() { return getToken(HiveStatementParser.REPLICATE_WILD_IGNORE_TABLE, 0); }
9929 		public TerminalNode REQUIRE_ROW_FORMAT() { return getToken(HiveStatementParser.REQUIRE_ROW_FORMAT, 0); }
9930 		public TerminalNode USER_RESOURCES() { return getToken(HiveStatementParser.USER_RESOURCES, 0); }
9931 		public TerminalNode RESPECT() { return getToken(HiveStatementParser.RESPECT, 0); }
9932 		public TerminalNode RESTORE() { return getToken(HiveStatementParser.RESTORE, 0); }
9933 		public TerminalNode RESUME() { return getToken(HiveStatementParser.RESUME, 0); }
9934 		public TerminalNode RETAIN() { return getToken(HiveStatementParser.RETAIN, 0); }
9935 		public TerminalNode RETURNED_SQLSTATE() { return getToken(HiveStatementParser.RETURNED_SQLSTATE, 0); }
9936 		public TerminalNode RETURNING() { return getToken(HiveStatementParser.RETURNING, 0); }
9937 		public TerminalNode RETURNS() { return getToken(HiveStatementParser.RETURNS, 0); }
9938 		public TerminalNode REUSE() { return getToken(HiveStatementParser.REUSE, 0); }
9939 		public TerminalNode REVERSE() { return getToken(HiveStatementParser.REVERSE, 0); }
9940 		public TerminalNode ROLE() { return getToken(HiveStatementParser.ROLE, 0); }
9941 		public TerminalNode ROLLUP() { return getToken(HiveStatementParser.ROLLUP, 0); }
9942 		public TerminalNode ROTATE() { return getToken(HiveStatementParser.ROTATE, 0); }
9943 		public TerminalNode ROUTINE() { return getToken(HiveStatementParser.ROUTINE, 0); }
9944 		public TerminalNode ROW_COUNT() { return getToken(HiveStatementParser.ROW_COUNT, 0); }
9945 		public TerminalNode ROW_FORMAT() { return getToken(HiveStatementParser.ROW_FORMAT, 0); }
9946 		public TerminalNode RTREE() { return getToken(HiveStatementParser.RTREE, 0); }
9947 		public TerminalNode SCHEDULE() { return getToken(HiveStatementParser.SCHEDULE, 0); }
9948 		public TerminalNode SCHEMA_NAME() { return getToken(HiveStatementParser.SCHEMA_NAME, 0); }
9949 		public TerminalNode SECONDARY_ENGINE() { return getToken(HiveStatementParser.SECONDARY_ENGINE, 0); }
9950 		public TerminalNode SECONDARY_ENGINE_ATTRIBUTE() { return getToken(HiveStatementParser.SECONDARY_ENGINE_ATTRIBUTE, 0); }
9951 		public TerminalNode SECONDARY_LOAD() { return getToken(HiveStatementParser.SECONDARY_LOAD, 0); }
9952 		public TerminalNode SECONDARY() { return getToken(HiveStatementParser.SECONDARY, 0); }
9953 		public TerminalNode SECONDARY_UNLOAD() { return getToken(HiveStatementParser.SECONDARY_UNLOAD, 0); }
9954 		public TerminalNode SECOND() { return getToken(HiveStatementParser.SECOND, 0); }
9955 		public TerminalNode SECURITY() { return getToken(HiveStatementParser.SECURITY, 0); }
9956 		public TerminalNode SERIALIZABLE() { return getToken(HiveStatementParser.SERIALIZABLE, 0); }
9957 		public TerminalNode SERIAL() { return getToken(HiveStatementParser.SERIAL, 0); }
9958 		public TerminalNode SERVER() { return getToken(HiveStatementParser.SERVER, 0); }
9959 		public TerminalNode SHARE() { return getToken(HiveStatementParser.SHARE, 0); }
9960 		public TerminalNode SIMPLE() { return getToken(HiveStatementParser.SIMPLE, 0); }
9961 		public TerminalNode SLOW() { return getToken(HiveStatementParser.SLOW, 0); }
9962 		public TerminalNode SNAPSHOT() { return getToken(HiveStatementParser.SNAPSHOT, 0); }
9963 		public TerminalNode SOCKET() { return getToken(HiveStatementParser.SOCKET, 0); }
9964 		public TerminalNode SONAME() { return getToken(HiveStatementParser.SONAME, 0); }
9965 		public TerminalNode SOUNDS() { return getToken(HiveStatementParser.SOUNDS, 0); }
9966 		public TerminalNode SOURCE() { return getToken(HiveStatementParser.SOURCE, 0); }
9967 		public TerminalNode SQL_AFTER_GTIDS() { return getToken(HiveStatementParser.SQL_AFTER_GTIDS, 0); }
9968 		public TerminalNode SQL_AFTER_MTS_GAPS() { return getToken(HiveStatementParser.SQL_AFTER_MTS_GAPS, 0); }
9969 		public TerminalNode SQL_BEFORE_GTIDS() { return getToken(HiveStatementParser.SQL_BEFORE_GTIDS, 0); }
9970 		public TerminalNode SQL_BUFFER_RESULT() { return getToken(HiveStatementParser.SQL_BUFFER_RESULT, 0); }
9971 		public TerminalNode SQL_NO_CACHE() { return getToken(HiveStatementParser.SQL_NO_CACHE, 0); }
9972 		public TerminalNode SQL_THREAD() { return getToken(HiveStatementParser.SQL_THREAD, 0); }
9973 		public TerminalNode SRID() { return getToken(HiveStatementParser.SRID, 0); }
9974 		public TerminalNode STACKED() { return getToken(HiveStatementParser.STACKED, 0); }
9975 		public TerminalNode STARTS() { return getToken(HiveStatementParser.STARTS, 0); }
9976 		public TerminalNode STATS_AUTO_RECALC() { return getToken(HiveStatementParser.STATS_AUTO_RECALC, 0); }
9977 		public TerminalNode STATS_PERSISTENT() { return getToken(HiveStatementParser.STATS_PERSISTENT, 0); }
9978 		public TerminalNode STATS_SAMPLE_PAGES() { return getToken(HiveStatementParser.STATS_SAMPLE_PAGES, 0); }
9979 		public TerminalNode STATUS() { return getToken(HiveStatementParser.STATUS, 0); }
9980 		public TerminalNode STORAGE() { return getToken(HiveStatementParser.STORAGE, 0); }
9981 		public TerminalNode STREAM() { return getToken(HiveStatementParser.STREAM, 0); }
9982 		public TerminalNode STRING() { return getToken(HiveStatementParser.STRING, 0); }
9983 		public TerminalNode SUBCLASS_ORIGIN() { return getToken(HiveStatementParser.SUBCLASS_ORIGIN, 0); }
9984 		public TerminalNode SUBJECT() { return getToken(HiveStatementParser.SUBJECT, 0); }
9985 		public TerminalNode SUBPARTITIONS() { return getToken(HiveStatementParser.SUBPARTITIONS, 0); }
9986 		public TerminalNode SUBPARTITION() { return getToken(HiveStatementParser.SUBPARTITION, 0); }
9987 		public TerminalNode SUSPEND() { return getToken(HiveStatementParser.SUSPEND, 0); }
9988 		public TerminalNode SWAPS() { return getToken(HiveStatementParser.SWAPS, 0); }
9989 		public TerminalNode SWITCHES() { return getToken(HiveStatementParser.SWITCHES, 0); }
9990 		public TerminalNode SYSTEM() { return getToken(HiveStatementParser.SYSTEM, 0); }
9991 		public TerminalNode TABLE() { return getToken(HiveStatementParser.TABLE, 0); }
9992 		public TerminalNode TABLES() { return getToken(HiveStatementParser.TABLES, 0); }
9993 		public TerminalNode TABLESPACE() { return getToken(HiveStatementParser.TABLESPACE, 0); }
9994 		public TerminalNode TABLE_CHECKSUM() { return getToken(HiveStatementParser.TABLE_CHECKSUM, 0); }
9995 		public TerminalNode TABLE_NAME() { return getToken(HiveStatementParser.TABLE_NAME, 0); }
9996 		public TerminalNode TEMPORARY() { return getToken(HiveStatementParser.TEMPORARY, 0); }
9997 		public TerminalNode TEMPTABLE() { return getToken(HiveStatementParser.TEMPTABLE, 0); }
9998 		public TerminalNode TEXT() { return getToken(HiveStatementParser.TEXT, 0); }
9999 		public TerminalNode THAN() { return getToken(HiveStatementParser.THAN, 0); }
10000 		public TerminalNode THREAD_PRIORITY() { return getToken(HiveStatementParser.THREAD_PRIORITY, 0); }
10001 		public TerminalNode TIES() { return getToken(HiveStatementParser.TIES, 0); }
10002 		public TerminalNode TIMESTAMP_ADD() { return getToken(HiveStatementParser.TIMESTAMP_ADD, 0); }
10003 		public TerminalNode TIMESTAMP_DIFF() { return getToken(HiveStatementParser.TIMESTAMP_DIFF, 0); }
10004 		public TerminalNode TIMESTAMP() { return getToken(HiveStatementParser.TIMESTAMP, 0); }
10005 		public TerminalNode TIME() { return getToken(HiveStatementParser.TIME, 0); }
10006 		public TerminalNode TLS() { return getToken(HiveStatementParser.TLS, 0); }
10007 		public TerminalNode TRANSACTION() { return getToken(HiveStatementParser.TRANSACTION, 0); }
10008 		public TerminalNode TRIGGERS() { return getToken(HiveStatementParser.TRIGGERS, 0); }
10009 		public TerminalNode TYPES() { return getToken(HiveStatementParser.TYPES, 0); }
10010 		public TerminalNode TYPE() { return getToken(HiveStatementParser.TYPE, 0); }
10011 		public TerminalNode UNBOUNDED() { return getToken(HiveStatementParser.UNBOUNDED, 0); }
10012 		public TerminalNode UNCOMMITTED() { return getToken(HiveStatementParser.UNCOMMITTED, 0); }
10013 		public TerminalNode UNDEFINED() { return getToken(HiveStatementParser.UNDEFINED, 0); }
10014 		public TerminalNode UNDOFILE() { return getToken(HiveStatementParser.UNDOFILE, 0); }
10015 		public TerminalNode UNDO_BUFFER_SIZE() { return getToken(HiveStatementParser.UNDO_BUFFER_SIZE, 0); }
10016 		public TerminalNode UNKNOWN() { return getToken(HiveStatementParser.UNKNOWN, 0); }
10017 		public TerminalNode UNTIL() { return getToken(HiveStatementParser.UNTIL, 0); }
10018 		public TerminalNode UPGRADE() { return getToken(HiveStatementParser.UPGRADE, 0); }
10019 		public TerminalNode USER() { return getToken(HiveStatementParser.USER, 0); }
10020 		public TerminalNode USE_FRM() { return getToken(HiveStatementParser.USE_FRM, 0); }
10021 		public TerminalNode VALIDATION() { return getToken(HiveStatementParser.VALIDATION, 0); }
10022 		public TerminalNode VALUE() { return getToken(HiveStatementParser.VALUE, 0); }
10023 		public TerminalNode VARIABLES() { return getToken(HiveStatementParser.VARIABLES, 0); }
10024 		public TerminalNode VCPU() { return getToken(HiveStatementParser.VCPU, 0); }
10025 		public TerminalNode VIEW() { return getToken(HiveStatementParser.VIEW, 0); }
10026 		public TerminalNode VISIBLE() { return getToken(HiveStatementParser.VISIBLE, 0); }
10027 		public TerminalNode WAIT() { return getToken(HiveStatementParser.WAIT, 0); }
10028 		public TerminalNode WARNINGS() { return getToken(HiveStatementParser.WARNINGS, 0); }
10029 		public TerminalNode WEEK() { return getToken(HiveStatementParser.WEEK, 0); }
10030 		public TerminalNode WEIGHT_STRING() { return getToken(HiveStatementParser.WEIGHT_STRING, 0); }
10031 		public TerminalNode WITHOUT() { return getToken(HiveStatementParser.WITHOUT, 0); }
10032 		public TerminalNode WORK() { return getToken(HiveStatementParser.WORK, 0); }
10033 		public TerminalNode WRAPPER() { return getToken(HiveStatementParser.WRAPPER, 0); }
10034 		public TerminalNode X509() { return getToken(HiveStatementParser.X509, 0); }
10035 		public TerminalNode XID() { return getToken(HiveStatementParser.XID, 0); }
10036 		public TerminalNode XML() { return getToken(HiveStatementParser.XML, 0); }
10037 		public TerminalNode YEAR() { return getToken(HiveStatementParser.YEAR, 0); }
10038 		public TerminalNode YEAR_MONTH() { return getToken(HiveStatementParser.YEAR_MONTH, 0); }
10039 		public IdentifierKeywordsUnambiguousContext(ParserRuleContext parent, int invokingState) {
10040 			super(parent, invokingState);
10041 		}
10042 		@Override public int getRuleIndex() { return RULE_identifierKeywordsUnambiguous; }
10043 		@Override
10044 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10045 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIdentifierKeywordsUnambiguous(this);
10046 			else return visitor.visitChildren(this);
10047 		}
10048 	}
10049 
10050 	public final IdentifierKeywordsUnambiguousContext identifierKeywordsUnambiguous() throws RecognitionException {
10051 		IdentifierKeywordsUnambiguousContext _localctx = new IdentifierKeywordsUnambiguousContext(_ctx, getState());
10052 		enterRule(_localctx, 172, RULE_identifierKeywordsUnambiguous);
10053 		int _la;
10054 		try {
10055 			enterOuterAlt(_localctx, 1);
10056 			{
10057 			setState(1300);
10058 			_la = _input.LA(1);
10059 			if ( !(((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & ((1L << (ACCOUNT - 73)) | (1L << (ACTION - 73)) | (1L << (ACTIVE - 73)) | (1L << (ADMIN - 73)) | (1L << (AFTER - 73)) | (1L << (AGAINST - 73)) | (1L << (AGGREGATE - 73)) | (1L << (ALGORITHM - 73)) | (1L << (ALWAYS - 73)) | (1L << (ANY - 73)) | (1L << (ARRAY - 73)) | (1L << (AT - 73)) | (1L << (ATTRIBUTE - 73)) | (1L << (AUTOEXTEND_SIZE - 73)) | (1L << (AUTO_INCREMENT - 73)) | (1L << (AVG - 73)) | (1L << (AVG_ROW_LENGTH - 73)) | (1L << (BACKUP - 73)) | (1L << (BINLOG - 73)) | (1L << (BIT - 73)) | (1L << (BLOCK - 73)) | (1L << (BOOL - 73)) | (1L << (BOOLEAN - 73)) | (1L << (BTREE - 73)) | (1L << (BUCKETS - 73)) | (1L << (CASCADED - 73)) | (1L << (CATALOG_NAME - 73)) | (1L << (CHAIN - 73)) | (1L << (CHANGED - 73)) | (1L << (CHANNEL - 73)) | (1L << (CIPHER - 73)) | (1L << (CLASS_ORIGIN - 73)))) != 0) || ((((_la - 137)) & ~0x3f) == 0 && ((1L << (_la - 137)) & ((1L << (CLIENT - 137)) | (1L << (CLOSE - 137)) | (1L << (COALESCE - 137)) | (1L << (CODE - 137)) | (1L << (COLLATION - 137)) | (1L << (COLUMNS - 137)) | (1L << (COLUMN_FORMAT - 137)) | (1L << (COLUMN_NAME - 137)) | (1L << (COMMITTED - 137)) | (1L << (COMPACT - 137)) | (1L << (COMPLETION - 137)) | (1L << (COMPONENT - 137)) | (1L << (COMPRESSED - 137)) | (1L << (COMPRESSION - 137)) | (1L << (CONCURRENT - 137)) | (1L << (CONNECTION - 137)) | (1L << (CONSISTENT - 137)) | (1L << (CONSTRAINT_CATALOG - 137)) | (1L << (CONSTRAINT_NAME - 137)) | (1L << (CONSTRAINT_SCHEMA - 137)) | (1L << (CONTEXT - 137)) | (1L << (CPU - 137)) | (1L << (CREATE - 137)) | (1L << (CURRENT - 137)) | (1L << (CURSOR_NAME - 137)) | (1L << (DATA - 137)) | (1L << (DATAFILE - 137)) | (1L << (DATE - 137)) | (1L << (DATETIME - 137)) | (1L << (DAY - 137)) | (1L << (DAY_MINUTE - 137)) | (1L << (DEFAULT_AUTH - 137)) | (1L << (DEFINER - 137)) | (1L << (DEFINITION - 137)) | (1L << (DELAY_KEY_WRITE - 137)))) != 0) || ((((_la - 205)) & ~0x3f) == 0 && ((1L << (_la - 205)) & ((1L << (DESCRIPTION - 205)) | (1L << (DIAGNOSTICS - 205)) | (1L << (DIRECTORY - 205)) | (1L << (DISABLE - 205)) | (1L << (DISCARD - 205)) | (1L << (DISK - 205)) | (1L << (DUMPFILE - 205)) | (1L << (DUPLICATE - 205)) | (1L << (DYNAMIC - 205)) | (1L << (ENABLE - 205)) | (1L << (ENCRYPTION - 205)) | (1L << (ENDS - 205)) | (1L << (ENFORCED - 205)) | (1L << (ENGINE - 205)) | (1L << (ENGINES - 205)) | (1L << (ENGINE_ATTRIBUTE - 205)) | (1L << (ENUM - 205)) | (1L << (ERROR - 205)) | (1L << (ERRORS - 205)) | (1L << (ESCAPE - 205)) | (1L << (EVENTS - 205)) | (1L << (EVERY - 205)) | (1L << (EXCHANGE - 205)) | (1L << (EXCLUDE - 205)) | (1L << (EXPANSION - 205)) | (1L << (EXPIRE - 205)) | (1L << (EXPORT - 205)) | (1L << (EXTENDED - 205)) | (1L << (EXTENT_SIZE - 205)) | (1L << (FAILED_LOGIN_ATTEMPTS - 205)) | (1L << (FAST - 205)) | (1L << (FAULTS - 205)) | (1L << (FILE_BLOCK_SIZE - 205)) | (1L << (FILTER - 205)) | (1L << (FIRST - 205)) | (1L << (FIXED - 205)))) != 0) || ((((_la - 270)) & ~0x3f) == 0 && ((1L << (_la - 270)) & ((1L << (FOLLOWING - 270)) | (1L << (FORMAT - 270)) | (1L << (FOUND - 270)) | (1L << (FULL - 270)) | (1L << (GENERAL - 270)) | (1L << (GEOMETRY - 270)) | (1L << (GEOMETRYCOLLECTION - 270)) | (1L << (GET_FORMAT - 270)) | (1L << (GET_MASTER_PUBLIC_KEY - 270)) | (1L << (GRANTS - 270)) | (1L << (GROUP_REPLICATION - 270)) | (1L << (HASH - 270)) | (1L << (HISTOGRAM - 270)) | (1L << (HISTORY - 270)) | (1L << (HOST - 270)) | (1L << (HOSTS - 270)) | (1L << (HOUR - 270)) | (1L << (IDENTIFIED - 270)) | (1L << (IGNORE_SERVER_IDS - 270)) | (1L << (INACTIVE - 270)) | (1L << (INDEXES - 270)) | (1L << (INITIAL_SIZE - 270)) | (1L << (INSERT_METHOD - 270)) | (1L << (INSTANCE - 270)))) != 0) || ((((_la - 339)) & ~0x3f) == 0 && ((1L << (_la - 339)) & ((1L << (INVISIBLE - 339)) | (1L << (INVOKER - 339)) | (1L << (IO - 339)) | (1L << (IPC - 339)) | (1L << (ISOLATION - 339)) | (1L << (ISSUER - 339)) | (1L << (JSON - 339)) | (1L << (JSON_VALUE - 339)) | (1L << (KEY - 339)) | (1L << (KEY_BLOCK_SIZE - 339)) | (1L << (LAST - 339)) | (1L << (LEAVES - 339)) | (1L << (LESS - 339)) | (1L << (LEVEL - 339)) | (1L << (LINESTRING - 339)) | (1L << (LIST - 339)) | (1L << (LOCKED - 339)) | (1L << (LOCKS - 339)) | (1L << (LOGFILE - 339)) | (1L << (LOGS - 339)) | (1L << (MASTER - 339)) | (1L << (MASTER_AUTO_POSITION - 339)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 339)) | (1L << (MASTER_CONNECT_RETRY - 339)) | (1L << (MASTER_DELAY - 339)) | (1L << (MASTER_HEARTBEAT_PERIOD - 339)) | (1L << (MASTER_HOST - 339)) | (1L << (MASTER_LOG_FILE - 339)) | (1L << (MASTER_LOG_POS - 339)) | (1L << (MASTER_PASSWORD - 339)) | (1L << (MASTER_PORT - 339)))) != 0) || ((((_la - 403)) & ~0x3f) == 0 && ((1L << (_la - 403)) & ((1L << (MASTER_PUBLIC_KEY_PATH - 403)) | (1L << (MASTER_RETRY_COUNT - 403)) | (1L << (MASTER_SERVER_ID - 403)) | (1L << (MASTER_SSL - 403)) | (1L << (MASTER_SSL_CA - 403)) | (1L << (MASTER_SSL_CAPATH - 403)) | (1L << (MASTER_SSL_CERT - 403)) | (1L << (MASTER_SSL_CIPHER - 403)) | (1L << (MASTER_SSL_CRL - 403)) | (1L << (MASTER_SSL_CRLPATH - 403)) | (1L << (MASTER_SSL_KEY - 403)) | (1L << (MASTER_TLS_CIPHERSUITES - 403)) | (1L << (MASTER_TLS_VERSION - 403)) | (1L << (MASTER_USER - 403)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 403)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 403)) | (1L << (MAX_QUERIES_PER_HOUR - 403)) | (1L << (MAX_ROWS - 403)) | (1L << (MAX_SIZE - 403)) | (1L << (MAX_UPDATES_PER_HOUR - 403)) | (1L << (MAX_USER_CONNECTIONS - 403)) | (1L << (MEDIUM - 403)) | (1L << (MEMBER - 403)) | (1L << (MEMORY - 403)) | (1L << (MERGE - 403)) | (1L << (MESSAGE_TEXT - 403)) | (1L << (MICROSECOND - 403)) | (1L << (MIGRATE - 403)) | (1L << (MINUTE - 403)) | (1L << (MIN_ROWS - 403)) | (1L << (MODE - 403)) | (1L << (MODIFY - 403)) | (1L << (MONTH - 403)) | (1L << (MULTILINESTRING - 403)) | (1L << (MULTIPOINT - 403)) | (1L << (MULTIPOLYGON - 403)) | (1L << (MUTEX - 403)) | (1L << (MYSQL_ERRNO - 403)) | (1L << (NAME - 403)) | (1L << (NAMES - 403)) | (1L << (NATIONAL - 403)) | (1L << (NCHAR - 403)) | (1L << (NDBCLUSTER - 403)) | (1L << (NESTED - 403)) | (1L << (NETWORK_NAMESPACE - 403)) | (1L << (NEVER - 403)) | (1L << (NEW - 403)) | (1L << (NEXT - 403)) | (1L << (NODEGROUP - 403)))) != 0) || ((((_la - 471)) & ~0x3f) == 0 && ((1L << (_la - 471)) & ((1L << (NOWAIT - 471)) | (1L << (NO_WAIT - 471)) | (1L << (NULLS - 471)) | (1L << (NUMBER - 471)) | (1L << (NVARCHAR - 471)) | (1L << (OFF - 471)) | (1L << (OFFSET - 471)) | (1L << (OJ - 471)) | (1L << (OLD - 471)) | (1L << (ONE - 471)) | (1L << (ONLY - 471)) | (1L << (OPEN - 471)) | (1L << (OPTIONAL - 471)) | (1L << (OPTIONS - 471)) | (1L << (ORDINALITY - 471)) | (1L << (ORGANIZATION - 471)) | (1L << (OTHERS - 471)) | (1L << (OWNER - 471)) | (1L << (PACK_KEYS - 471)) | (1L << (PAGE - 471)) | (1L << (PARSER - 471)) | (1L << (PARTIAL - 471)) | (1L << (PARTITIONING - 471)) | (1L << (PARTITIONS - 471)) | (1L << (PASSWORD - 471)) | (1L << (PASSWORD_LOCK_TIME - 471)) | (1L << (PATH - 471)) | (1L << (PHASE - 471)) | (1L << (PLUGIN - 471)) | (1L << (PLUGINS - 471)) | (1L << (PLUGIN_DIR - 471)) | (1L << (POINT - 471)) | (1L << (POLYGON - 471)) | (1L << (PORT - 471)) | (1L << (PRECEDING - 471)) | (1L << (PRESERVE - 471)) | (1L << (PREV - 471)) | (1L << (PRIVILEGES - 471)) | (1L << (PRIVILEGE_CHECKS_USER - 471)))) != 0) || ((((_la - 537)) & ~0x3f) == 0 && ((1L << (_la - 537)) & ((1L << (PROCESSLIST - 537)) | (1L << (PROFILE - 537)) | (1L << (PROFILES - 537)) | (1L << (QUARTER - 537)) | (1L << (QUERY - 537)) | (1L << (QUICK - 537)) | (1L << (RANDOM - 537)) | (1L << (READ_ONLY - 537)) | (1L << (REBUILD - 537)) | (1L << (RECOVER - 537)) | (1L << (REDO_BUFFER_SIZE - 537)) | (1L << (REDUNDANT - 537)) | (1L << (REFERENCE - 537)) | (1L << (RELAY - 537)) | (1L << (RELAYLOG - 537)) | (1L << (RELAY_LOG_FILE - 537)) | (1L << (RELAY_LOG_POS - 537)) | (1L << (RELAY_THREAD - 537)) | (1L << (REMOVE - 537)) | (1L << (REORGANIZE - 537)) | (1L << (REPEATABLE - 537)) | (1L << (REPLICATE_DO_DB - 537)) | (1L << (REPLICATE_DO_TABLE - 537)) | (1L << (REPLICATE_IGNORE_DB - 537)) | (1L << (REPLICATE_IGNORE_TABLE - 537)) | (1L << (REPLICATE_REWRITE_DB - 537)) | (1L << (REPLICATE_WILD_DO_TABLE - 537)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 537)) | (1L << (REQUIRE_ROW_FORMAT - 537)) | (1L << (RESPECT - 537)) | (1L << (RESTORE - 537)) | (1L << (RESUME - 537)) | (1L << (RETAIN - 537)) | (1L << (RETURNED_SQLSTATE - 537)) | (1L << (RETURNING - 537)) | (1L << (RETURNS - 537)))) != 0) || ((((_la - 601)) & ~0x3f) == 0 && ((1L << (_la - 601)) & ((1L << (REUSE - 601)) | (1L << (REVERSE - 601)) | (1L << (ROLE - 601)) | (1L << (ROLLUP - 601)) | (1L << (ROTATE - 601)) | (1L << (ROUTINE - 601)) | (1L << (ROW_COUNT - 601)) | (1L << (ROW_FORMAT - 601)) | (1L << (RTREE - 601)) | (1L << (SCHEDULE - 601)) | (1L << (SCHEMA_NAME - 601)) | (1L << (SECOND - 601)) | (1L << (SECONDARY - 601)) | (1L << (SECONDARY_ENGINE - 601)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 601)) | (1L << (SECONDARY_LOAD - 601)) | (1L << (SECONDARY_UNLOAD - 601)) | (1L << (SECURITY - 601)) | (1L << (SERIAL - 601)) | (1L << (SERIALIZABLE - 601)) | (1L << (SERVER - 601)) | (1L << (SHARE - 601)) | (1L << (SIMPLE - 601)) | (1L << (SLOW - 601)) | (1L << (SNAPSHOT - 601)) | (1L << (SOCKET - 601)) | (1L << (SONAME - 601)) | (1L << (SOUNDS - 601)) | (1L << (SOURCE - 601)) | (1L << (SQL_AFTER_GTIDS - 601)) | (1L << (SQL_AFTER_MTS_GAPS - 601)) | (1L << (SQL_BEFORE_GTIDS - 601)))) != 0) || ((((_la - 665)) & ~0x3f) == 0 && ((1L << (_la - 665)) & ((1L << (SQL_BUFFER_RESULT - 665)) | (1L << (SQL_NO_CACHE - 665)) | (1L << (SQL_THREAD - 665)) | (1L << (SRID - 665)) | (1L << (STACKED - 665)) | (1L << (STARTS - 665)) | (1L << (STATS_AUTO_RECALC - 665)) | (1L << (STATS_PERSISTENT - 665)) | (1L << (STATS_SAMPLE_PAGES - 665)) | (1L << (STATUS - 665)) | (1L << (STORAGE - 665)) | (1L << (STREAM - 665)) | (1L << (STRING - 665)) | (1L << (SUBCLASS_ORIGIN - 665)) | (1L << (SUBJECT - 665)) | (1L << (SUBPARTITION - 665)) | (1L << (SUBPARTITIONS - 665)) | (1L << (SUSPEND - 665)) | (1L << (SWAPS - 665)) | (1L << (SWITCHES - 665)) | (1L << (SYSTEM - 665)) | (1L << (TABLE - 665)) | (1L << (TABLES - 665)) | (1L << (TABLESPACE - 665)) | (1L << (TABLE_CHECKSUM - 665)) | (1L << (TABLE_NAME - 665)) | (1L << (TEMPORARY - 665)) | (1L << (TEMPTABLE - 665)))) != 0) || ((((_la - 730)) & ~0x3f) == 0 && ((1L << (_la - 730)) & ((1L << (TEXT - 730)) | (1L << (THAN - 730)) | (1L << (THREAD_PRIORITY - 730)) | (1L << (TIES - 730)) | (1L << (TIME - 730)) | (1L << (TIMESTAMP - 730)) | (1L << (TIMESTAMP_ADD - 730)) | (1L << (TIMESTAMP_DIFF - 730)) | (1L << (TLS - 730)) | (1L << (TRANSACTION - 730)) | (1L << (TRIGGERS - 730)) | (1L << (TYPE - 730)) | (1L << (TYPES - 730)) | (1L << (UNBOUNDED - 730)) | (1L << (UNCOMMITTED - 730)) | (1L << (UNDEFINED - 730)) | (1L << (UNDOFILE - 730)) | (1L << (UNDO_BUFFER_SIZE - 730)) | (1L << (UNKNOWN - 730)) | (1L << (UNTIL - 730)) | (1L << (UPGRADE - 730)) | (1L << (USER - 730)) | (1L << (USER_RESOURCES - 730)) | (1L << (USE_FRM - 730)) | (1L << (VALIDATION - 730)) | (1L << (VALUE - 730)) | (1L << (VARIABLES - 730)) | (1L << (VCPU - 730)) | (1L << (VIEW - 730)) | (1L << (VISIBLE - 730)) | (1L << (WAIT - 730)) | (1L << (WARNINGS - 730)) | (1L << (WEEK - 730)))) != 0) || ((((_la - 794)) & ~0x3f) == 0 && ((1L << (_la - 794)) & ((1L << (WEIGHT_STRING - 794)) | (1L << (WITHOUT - 794)) | (1L << (WORK - 794)) | (1L << (WRAPPER - 794)) | (1L << (X509 - 794)) | (1L << (XID - 794)) | (1L << (XML - 794)) | (1L << (YEAR - 794)) | (1L << (YEAR_MONTH - 794)))) != 0)) ) {
10060 			_errHandler.recoverInline(this);
10061 			}
10062 			else {
10063 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
10064 				_errHandler.reportMatch(this);
10065 				consume();
10066 			}
10067 			}
10068 		}
10069 		catch (RecognitionException re) {
10070 			_localctx.exception = re;
10071 			_errHandler.reportError(this, re);
10072 			_errHandler.recover(this, re);
10073 		}
10074 		finally {
10075 			exitRule();
10076 		}
10077 		return _localctx;
10078 	}
10079 
10080 	public static class IdentifierKeywordsAmbiguous1RolesAndLabelsContext extends ParserRuleContext {
10081 		public TerminalNode EXECUTE() { return getToken(HiveStatementParser.EXECUTE, 0); }
10082 		public TerminalNode RESTART() { return getToken(HiveStatementParser.RESTART, 0); }
10083 		public TerminalNode SHUTDOWN() { return getToken(HiveStatementParser.SHUTDOWN, 0); }
10084 		public IdentifierKeywordsAmbiguous1RolesAndLabelsContext(ParserRuleContext parent, int invokingState) {
10085 			super(parent, invokingState);
10086 		}
10087 		@Override public int getRuleIndex() { return RULE_identifierKeywordsAmbiguous1RolesAndLabels; }
10088 		@Override
10089 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10090 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIdentifierKeywordsAmbiguous1RolesAndLabels(this);
10091 			else return visitor.visitChildren(this);
10092 		}
10093 	}
10094 
10095 	public final IdentifierKeywordsAmbiguous1RolesAndLabelsContext identifierKeywordsAmbiguous1RolesAndLabels() throws RecognitionException {
10096 		IdentifierKeywordsAmbiguous1RolesAndLabelsContext _localctx = new IdentifierKeywordsAmbiguous1RolesAndLabelsContext(_ctx, getState());
10097 		enterRule(_localctx, 174, RULE_identifierKeywordsAmbiguous1RolesAndLabels);
10098 		int _la;
10099 		try {
10100 			enterOuterAlt(_localctx, 1);
10101 			{
10102 			setState(1302);
10103 			_la = _input.LA(1);
10104 			if ( !(_la==EXECUTE || _la==RESTART || _la==SHUTDOWN) ) {
10105 			_errHandler.recoverInline(this);
10106 			}
10107 			else {
10108 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
10109 				_errHandler.reportMatch(this);
10110 				consume();
10111 			}
10112 			}
10113 		}
10114 		catch (RecognitionException re) {
10115 			_localctx.exception = re;
10116 			_errHandler.reportError(this, re);
10117 			_errHandler.recover(this, re);
10118 		}
10119 		finally {
10120 			exitRule();
10121 		}
10122 		return _localctx;
10123 	}
10124 
10125 	public static class IdentifierKeywordsAmbiguous2LabelsContext extends ParserRuleContext {
10126 		public TerminalNode ASCII() { return getToken(HiveStatementParser.ASCII, 0); }
10127 		public TerminalNode BEGIN() { return getToken(HiveStatementParser.BEGIN, 0); }
10128 		public TerminalNode BYTE() { return getToken(HiveStatementParser.BYTE, 0); }
10129 		public TerminalNode CACHE() { return getToken(HiveStatementParser.CACHE, 0); }
10130 		public TerminalNode CHARSET() { return getToken(HiveStatementParser.CHARSET, 0); }
10131 		public TerminalNode CHECKSUM() { return getToken(HiveStatementParser.CHECKSUM, 0); }
10132 		public TerminalNode CLONE() { return getToken(HiveStatementParser.CLONE, 0); }
10133 		public TerminalNode COMMENT() { return getToken(HiveStatementParser.COMMENT, 0); }
10134 		public TerminalNode COMMIT() { return getToken(HiveStatementParser.COMMIT, 0); }
10135 		public TerminalNode CONTAINS() { return getToken(HiveStatementParser.CONTAINS, 0); }
10136 		public TerminalNode DEALLOCATE() { return getToken(HiveStatementParser.DEALLOCATE, 0); }
10137 		public TerminalNode DO() { return getToken(HiveStatementParser.DO, 0); }
10138 		public TerminalNode END() { return getToken(HiveStatementParser.END, 0); }
10139 		public TerminalNode FLUSH() { return getToken(HiveStatementParser.FLUSH, 0); }
10140 		public TerminalNode FOLLOWS() { return getToken(HiveStatementParser.FOLLOWS, 0); }
10141 		public TerminalNode HANDLER() { return getToken(HiveStatementParser.HANDLER, 0); }
10142 		public TerminalNode HELP() { return getToken(HiveStatementParser.HELP, 0); }
10143 		public TerminalNode IMPORT() { return getToken(HiveStatementParser.IMPORT, 0); }
10144 		public TerminalNode INSTALL() { return getToken(HiveStatementParser.INSTALL, 0); }
10145 		public TerminalNode LANGUAGE() { return getToken(HiveStatementParser.LANGUAGE, 0); }
10146 		public TerminalNode NO() { return getToken(HiveStatementParser.NO, 0); }
10147 		public TerminalNode PRECEDES() { return getToken(HiveStatementParser.PRECEDES, 0); }
10148 		public TerminalNode PREPARE() { return getToken(HiveStatementParser.PREPARE, 0); }
10149 		public TerminalNode REPAIR() { return getToken(HiveStatementParser.REPAIR, 0); }
10150 		public TerminalNode RESET() { return getToken(HiveStatementParser.RESET, 0); }
10151 		public TerminalNode ROLLBACK() { return getToken(HiveStatementParser.ROLLBACK, 0); }
10152 		public TerminalNode SAVEPOINT() { return getToken(HiveStatementParser.SAVEPOINT, 0); }
10153 		public TerminalNode SIGNED() { return getToken(HiveStatementParser.SIGNED, 0); }
10154 		public TerminalNode SLAVE() { return getToken(HiveStatementParser.SLAVE, 0); }
10155 		public TerminalNode START() { return getToken(HiveStatementParser.START, 0); }
10156 		public TerminalNode STOP() { return getToken(HiveStatementParser.STOP, 0); }
10157 		public TerminalNode TRUNCATE() { return getToken(HiveStatementParser.TRUNCATE, 0); }
10158 		public TerminalNode UNICODE() { return getToken(HiveStatementParser.UNICODE, 0); }
10159 		public TerminalNode UNINSTALL() { return getToken(HiveStatementParser.UNINSTALL, 0); }
10160 		public TerminalNode XA() { return getToken(HiveStatementParser.XA, 0); }
10161 		public IdentifierKeywordsAmbiguous2LabelsContext(ParserRuleContext parent, int invokingState) {
10162 			super(parent, invokingState);
10163 		}
10164 		@Override public int getRuleIndex() { return RULE_identifierKeywordsAmbiguous2Labels; }
10165 		@Override
10166 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10167 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIdentifierKeywordsAmbiguous2Labels(this);
10168 			else return visitor.visitChildren(this);
10169 		}
10170 	}
10171 
10172 	public final IdentifierKeywordsAmbiguous2LabelsContext identifierKeywordsAmbiguous2Labels() throws RecognitionException {
10173 		IdentifierKeywordsAmbiguous2LabelsContext _localctx = new IdentifierKeywordsAmbiguous2LabelsContext(_ctx, getState());
10174 		enterRule(_localctx, 176, RULE_identifierKeywordsAmbiguous2Labels);
10175 		int _la;
10176 		try {
10177 			enterOuterAlt(_localctx, 1);
10178 			{
10179 			setState(1304);
10180 			_la = _input.LA(1);
10181 			if ( !(((((_la - 91)) & ~0x3f) == 0 && ((1L << (_la - 91)) & ((1L << (ASCII - 91)) | (1L << (BEGIN - 91)) | (1L << (BYTE - 91)) | (1L << (CACHE - 91)) | (1L << (CHARSET - 91)) | (1L << (CHECKSUM - 91)) | (1L << (CLONE - 91)) | (1L << (COMMENT - 91)) | (1L << (COMMIT - 91)))) != 0) || ((((_la - 164)) & ~0x3f) == 0 && ((1L << (_la - 164)) & ((1L << (CONTAINS - 164)) | (1L << (DEALLOCATE - 164)) | (1L << (DO - 164)))) != 0) || ((((_la - 229)) & ~0x3f) == 0 && ((1L << (_la - 229)) & ((1L << (END - 229)) | (1L << (FLUSH - 229)) | (1L << (FOLLOWS - 229)))) != 0) || ((((_la - 299)) & ~0x3f) == 0 && ((1L << (_la - 299)) & ((1L << (HANDLER - 299)) | (1L << (HELP - 299)) | (1L << (IMPORT - 299)) | (1L << (INSTALL - 299)) | (1L << (LANGUAGE - 299)))) != 0) || _la==NO || _la==PRECEDES || ((((_la - 529)) & ~0x3f) == 0 && ((1L << (_la - 529)) & ((1L << (PREPARE - 529)) | (1L << (REPAIR - 529)) | (1L << (RESET - 529)))) != 0) || ((((_la - 607)) & ~0x3f) == 0 && ((1L << (_la - 607)) & ((1L << (ROLLBACK - 607)) | (1L << (SAVEPOINT - 607)) | (1L << (SIGNED - 607)) | (1L << (SLAVE - 607)))) != 0) || _la==START || _la==STOP || ((((_la - 749)) & ~0x3f) == 0 && ((1L << (_la - 749)) & ((1L << (TRUNCATE - 749)) | (1L << (UNICODE - 749)) | (1L << (UNINSTALL - 749)) | (1L << (XA - 749)))) != 0)) ) {
10182 			_errHandler.recoverInline(this);
10183 			}
10184 			else {
10185 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
10186 				_errHandler.reportMatch(this);
10187 				consume();
10188 			}
10189 			}
10190 		}
10191 		catch (RecognitionException re) {
10192 			_localctx.exception = re;
10193 			_errHandler.reportError(this, re);
10194 			_errHandler.recover(this, re);
10195 		}
10196 		finally {
10197 			exitRule();
10198 		}
10199 		return _localctx;
10200 	}
10201 
10202 	public static class IdentifierKeywordsAmbiguous3RolesContext extends ParserRuleContext {
10203 		public TerminalNode EVENT() { return getToken(HiveStatementParser.EVENT, 0); }
10204 		public TerminalNode FILE() { return getToken(HiveStatementParser.FILE, 0); }
10205 		public TerminalNode NONE() { return getToken(HiveStatementParser.NONE, 0); }
10206 		public TerminalNode PROCESS() { return getToken(HiveStatementParser.PROCESS, 0); }
10207 		public TerminalNode PROXY() { return getToken(HiveStatementParser.PROXY, 0); }
10208 		public TerminalNode RELOAD() { return getToken(HiveStatementParser.RELOAD, 0); }
10209 		public TerminalNode REPLICATION() { return getToken(HiveStatementParser.REPLICATION, 0); }
10210 		public TerminalNode RESOURCE() { return getToken(HiveStatementParser.RESOURCE, 0); }
10211 		public TerminalNode SUPER() { return getToken(HiveStatementParser.SUPER, 0); }
10212 		public IdentifierKeywordsAmbiguous3RolesContext(ParserRuleContext parent, int invokingState) {
10213 			super(parent, invokingState);
10214 		}
10215 		@Override public int getRuleIndex() { return RULE_identifierKeywordsAmbiguous3Roles; }
10216 		@Override
10217 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10218 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIdentifierKeywordsAmbiguous3Roles(this);
10219 			else return visitor.visitChildren(this);
10220 		}
10221 	}
10222 
10223 	public final IdentifierKeywordsAmbiguous3RolesContext identifierKeywordsAmbiguous3Roles() throws RecognitionException {
10224 		IdentifierKeywordsAmbiguous3RolesContext _localctx = new IdentifierKeywordsAmbiguous3RolesContext(_ctx, getState());
10225 		enterRule(_localctx, 178, RULE_identifierKeywordsAmbiguous3Roles);
10226 		int _la;
10227 		try {
10228 			enterOuterAlt(_localctx, 1);
10229 			{
10230 			setState(1306);
10231 			_la = _input.LA(1);
10232 			if ( !(_la==EVENT || _la==FILE || _la==NONE || ((((_la - 536)) & ~0x3f) == 0 && ((1L << (_la - 536)) & ((1L << (PROCESS - 536)) | (1L << (PROXY - 536)) | (1L << (RELOAD - 536)) | (1L << (REPLICATION - 536)) | (1L << (RESOURCE - 536)))) != 0) || _la==SUPER) ) {
10233 			_errHandler.recoverInline(this);
10234 			}
10235 			else {
10236 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
10237 				_errHandler.reportMatch(this);
10238 				consume();
10239 			}
10240 			}
10241 		}
10242 		catch (RecognitionException re) {
10243 			_localctx.exception = re;
10244 			_errHandler.reportError(this, re);
10245 			_errHandler.recover(this, re);
10246 		}
10247 		finally {
10248 			exitRule();
10249 		}
10250 		return _localctx;
10251 	}
10252 
10253 	public static class IdentifierKeywordsAmbiguous4SystemVariablesContext extends ParserRuleContext {
10254 		public TerminalNode GLOBAL() { return getToken(HiveStatementParser.GLOBAL, 0); }
10255 		public TerminalNode LOCAL() { return getToken(HiveStatementParser.LOCAL, 0); }
10256 		public TerminalNode PERSIST() { return getToken(HiveStatementParser.PERSIST, 0); }
10257 		public TerminalNode PERSIST_ONLY() { return getToken(HiveStatementParser.PERSIST_ONLY, 0); }
10258 		public TerminalNode SESSION() { return getToken(HiveStatementParser.SESSION, 0); }
10259 		public IdentifierKeywordsAmbiguous4SystemVariablesContext(ParserRuleContext parent, int invokingState) {
10260 			super(parent, invokingState);
10261 		}
10262 		@Override public int getRuleIndex() { return RULE_identifierKeywordsAmbiguous4SystemVariables; }
10263 		@Override
10264 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10265 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIdentifierKeywordsAmbiguous4SystemVariables(this);
10266 			else return visitor.visitChildren(this);
10267 		}
10268 	}
10269 
10270 	public final IdentifierKeywordsAmbiguous4SystemVariablesContext identifierKeywordsAmbiguous4SystemVariables() throws RecognitionException {
10271 		IdentifierKeywordsAmbiguous4SystemVariablesContext _localctx = new IdentifierKeywordsAmbiguous4SystemVariablesContext(_ctx, getState());
10272 		enterRule(_localctx, 180, RULE_identifierKeywordsAmbiguous4SystemVariables);
10273 		int _la;
10274 		try {
10275 			enterOuterAlt(_localctx, 1);
10276 			{
10277 			setState(1308);
10278 			_la = _input.LA(1);
10279 			if ( !(_la==GLOBAL || _la==LOCAL || _la==PERSIST || _la==PERSIST_ONLY || _la==SESSION) ) {
10280 			_errHandler.recoverInline(this);
10281 			}
10282 			else {
10283 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
10284 				_errHandler.reportMatch(this);
10285 				consume();
10286 			}
10287 			}
10288 		}
10289 		catch (RecognitionException re) {
10290 			_localctx.exception = re;
10291 			_errHandler.reportError(this, re);
10292 			_errHandler.recover(this, re);
10293 		}
10294 		finally {
10295 			exitRule();
10296 		}
10297 		return _localctx;
10298 	}
10299 
10300 	public static class TextOrIdentifierContext extends ParserRuleContext {
10301 		public IdentifierContext identifier() {
10302 			return getRuleContext(IdentifierContext.class,0);
10303 		}
10304 		public String_Context string_() {
10305 			return getRuleContext(String_Context.class,0);
10306 		}
10307 		public IpAddressContext ipAddress() {
10308 			return getRuleContext(IpAddressContext.class,0);
10309 		}
10310 		public TextOrIdentifierContext(ParserRuleContext parent, int invokingState) {
10311 			super(parent, invokingState);
10312 		}
10313 		@Override public int getRuleIndex() { return RULE_textOrIdentifier; }
10314 		@Override
10315 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10316 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTextOrIdentifier(this);
10317 			else return visitor.visitChildren(this);
10318 		}
10319 	}
10320 
10321 	public final TextOrIdentifierContext textOrIdentifier() throws RecognitionException {
10322 		TextOrIdentifierContext _localctx = new TextOrIdentifierContext(_ctx, getState());
10323 		enterRule(_localctx, 182, RULE_textOrIdentifier);
10324 		try {
10325 			setState(1313);
10326 			_errHandler.sync(this);
10327 			switch ( getInterpreter().adaptivePredict(_input,143,_ctx) ) {
10328 			case 1:
10329 				enterOuterAlt(_localctx, 1);
10330 				{
10331 				setState(1310);
10332 				identifier();
10333 				}
10334 				break;
10335 			case 2:
10336 				enterOuterAlt(_localctx, 2);
10337 				{
10338 				setState(1311);
10339 				string_();
10340 				}
10341 				break;
10342 			case 3:
10343 				enterOuterAlt(_localctx, 3);
10344 				{
10345 				setState(1312);
10346 				ipAddress();
10347 				}
10348 				break;
10349 			}
10350 		}
10351 		catch (RecognitionException re) {
10352 			_localctx.exception = re;
10353 			_errHandler.reportError(this, re);
10354 			_errHandler.recover(this, re);
10355 		}
10356 		finally {
10357 			exitRule();
10358 		}
10359 		return _localctx;
10360 	}
10361 
10362 	public static class IpAddressContext extends ParserRuleContext {
10363 		public TerminalNode IP_ADDRESS() { return getToken(HiveStatementParser.IP_ADDRESS, 0); }
10364 		public IpAddressContext(ParserRuleContext parent, int invokingState) {
10365 			super(parent, invokingState);
10366 		}
10367 		@Override public int getRuleIndex() { return RULE_ipAddress; }
10368 		@Override
10369 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10370 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIpAddress(this);
10371 			else return visitor.visitChildren(this);
10372 		}
10373 	}
10374 
10375 	public final IpAddressContext ipAddress() throws RecognitionException {
10376 		IpAddressContext _localctx = new IpAddressContext(_ctx, getState());
10377 		enterRule(_localctx, 184, RULE_ipAddress);
10378 		try {
10379 			enterOuterAlt(_localctx, 1);
10380 			{
10381 			setState(1315);
10382 			match(IP_ADDRESS);
10383 			}
10384 		}
10385 		catch (RecognitionException re) {
10386 			_localctx.exception = re;
10387 			_errHandler.reportError(this, re);
10388 			_errHandler.recover(this, re);
10389 		}
10390 		finally {
10391 			exitRule();
10392 		}
10393 		return _localctx;
10394 	}
10395 
10396 	public static class VariableContext extends ParserRuleContext {
10397 		public UserVariableContext userVariable() {
10398 			return getRuleContext(UserVariableContext.class,0);
10399 		}
10400 		public SystemVariableContext systemVariable() {
10401 			return getRuleContext(SystemVariableContext.class,0);
10402 		}
10403 		public VariableContext(ParserRuleContext parent, int invokingState) {
10404 			super(parent, invokingState);
10405 		}
10406 		@Override public int getRuleIndex() { return RULE_variable; }
10407 		@Override
10408 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10409 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitVariable(this);
10410 			else return visitor.visitChildren(this);
10411 		}
10412 	}
10413 
10414 	public final VariableContext variable() throws RecognitionException {
10415 		VariableContext _localctx = new VariableContext(_ctx, getState());
10416 		enterRule(_localctx, 186, RULE_variable);
10417 		try {
10418 			setState(1319);
10419 			_errHandler.sync(this);
10420 			switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) {
10421 			case 1:
10422 				enterOuterAlt(_localctx, 1);
10423 				{
10424 				setState(1317);
10425 				userVariable();
10426 				}
10427 				break;
10428 			case 2:
10429 				enterOuterAlt(_localctx, 2);
10430 				{
10431 				setState(1318);
10432 				systemVariable();
10433 				}
10434 				break;
10435 			}
10436 		}
10437 		catch (RecognitionException re) {
10438 			_localctx.exception = re;
10439 			_errHandler.reportError(this, re);
10440 			_errHandler.recover(this, re);
10441 		}
10442 		finally {
10443 			exitRule();
10444 		}
10445 		return _localctx;
10446 	}
10447 
10448 	public static class UserVariableContext extends ParserRuleContext {
10449 		public TerminalNode AT_() { return getToken(HiveStatementParser.AT_, 0); }
10450 		public TextOrIdentifierContext textOrIdentifier() {
10451 			return getRuleContext(TextOrIdentifierContext.class,0);
10452 		}
10453 		public UserVariableContext(ParserRuleContext parent, int invokingState) {
10454 			super(parent, invokingState);
10455 		}
10456 		@Override public int getRuleIndex() { return RULE_userVariable; }
10457 		@Override
10458 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10459 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUserVariable(this);
10460 			else return visitor.visitChildren(this);
10461 		}
10462 	}
10463 
10464 	public final UserVariableContext userVariable() throws RecognitionException {
10465 		UserVariableContext _localctx = new UserVariableContext(_ctx, getState());
10466 		enterRule(_localctx, 188, RULE_userVariable);
10467 		try {
10468 			setState(1324);
10469 			_errHandler.sync(this);
10470 			switch (_input.LA(1)) {
10471 			case AT_:
10472 				enterOuterAlt(_localctx, 1);
10473 				{
10474 				setState(1321);
10475 				match(AT_);
10476 				setState(1322);
10477 				textOrIdentifier();
10478 				}
10479 				break;
10480 			case MAX:
10481 			case MIN:
10482 			case SUM:
10483 			case COUNT:
10484 			case GROUP_CONCAT:
10485 			case CAST:
10486 			case POSITION:
10487 			case SUBSTRING:
10488 			case SUBSTR:
10489 			case EXTRACT:
10490 			case TRIM:
10491 			case LAST_DAY:
10492 			case TRADITIONAL:
10493 			case TREE:
10494 			case MYSQL_MAIN:
10495 			case MYSQL_ADMIN:
10496 			case INSTANT:
10497 			case INPLACE:
10498 			case COPY:
10499 			case UL_BINARY:
10500 			case AUTOCOMMIT:
10501 			case INNODB:
10502 			case REDO_LOG:
10503 			case ACCOUNT:
10504 			case ACTION:
10505 			case ACTIVE:
10506 			case ADMIN:
10507 			case AFTER:
10508 			case AGAINST:
10509 			case AGGREGATE:
10510 			case ALGORITHM:
10511 			case ALWAYS:
10512 			case ANY:
10513 			case ARRAY:
10514 			case ASCII:
10515 			case AT:
10516 			case ATTRIBUTE:
10517 			case AUTOEXTEND_SIZE:
10518 			case AUTO_INCREMENT:
10519 			case AVG:
10520 			case BIT_XOR:
10521 			case AVG_ROW_LENGTH:
10522 			case BACKUP:
10523 			case BEGIN:
10524 			case BINLOG:
10525 			case BIT:
10526 			case BLOCK:
10527 			case BOOL:
10528 			case BOOLEAN:
10529 			case BTREE:
10530 			case BUCKETS:
10531 			case BYTE:
10532 			case CACHE:
10533 			case CASCADED:
10534 			case CATALOG_NAME:
10535 			case CHAIN:
10536 			case CHANGED:
10537 			case CHANNEL:
10538 			case CHARSET:
10539 			case CHECKSUM:
10540 			case CIPHER:
10541 			case CLASS_ORIGIN:
10542 			case CLIENT:
10543 			case CLONE:
10544 			case CLOSE:
10545 			case COALESCE:
10546 			case CODE:
10547 			case COLLATION:
10548 			case COLUMNS:
10549 			case COLUMN_FORMAT:
10550 			case COLUMN_NAME:
10551 			case COMMENT:
10552 			case COMMIT:
10553 			case COMMITTED:
10554 			case COMPACT:
10555 			case COMPLETION:
10556 			case COMPONENT:
10557 			case COMPRESSED:
10558 			case COMPRESSION:
10559 			case CONCURRENT:
10560 			case CONNECTION:
10561 			case CONSISTENT:
10562 			case CONSTRAINT_CATALOG:
10563 			case CONSTRAINT_NAME:
10564 			case CONSTRAINT_SCHEMA:
10565 			case CONTAINS:
10566 			case CONTEXT:
10567 			case CPU:
10568 			case CREATE:
10569 			case CURRENT:
10570 			case CURSOR_NAME:
10571 			case DATA:
10572 			case DATAFILE:
10573 			case DATE:
10574 			case DATETIME:
10575 			case DAY:
10576 			case DAY_MINUTE:
10577 			case DEALLOCATE:
10578 			case DEFAULT_AUTH:
10579 			case DEFINER:
10580 			case DEFINITION:
10581 			case DELAY_KEY_WRITE:
10582 			case DESCRIPTION:
10583 			case DIAGNOSTICS:
10584 			case DIRECTORY:
10585 			case DISABLE:
10586 			case DISCARD:
10587 			case DISK:
10588 			case DO:
10589 			case DUMPFILE:
10590 			case DUPLICATE:
10591 			case DYNAMIC:
10592 			case ENABLE:
10593 			case ENCRYPTION:
10594 			case END:
10595 			case ENDS:
10596 			case ENFORCED:
10597 			case ENGINE:
10598 			case ENGINES:
10599 			case ENGINE_ATTRIBUTE:
10600 			case ENUM:
10601 			case ERROR:
10602 			case ERRORS:
10603 			case ESCAPE:
10604 			case EVENT:
10605 			case EVENTS:
10606 			case EVERY:
10607 			case EXCHANGE:
10608 			case EXCLUDE:
10609 			case EXECUTE:
10610 			case EXPANSION:
10611 			case EXPIRE:
10612 			case EXPORT:
10613 			case EXTENDED:
10614 			case EXTENT_SIZE:
10615 			case FAILED_LOGIN_ATTEMPTS:
10616 			case FAST:
10617 			case FAULTS:
10618 			case FILE:
10619 			case FILE_BLOCK_SIZE:
10620 			case FILTER:
10621 			case FIRST:
10622 			case FIXED:
10623 			case FLUSH:
10624 			case FOLLOWING:
10625 			case FOLLOWS:
10626 			case FORMAT:
10627 			case FOUND:
10628 			case FULL:
10629 			case GENERAL:
10630 			case GEOMETRY:
10631 			case GEOMETRYCOLLECTION:
10632 			case GET_FORMAT:
10633 			case GET_MASTER_PUBLIC_KEY:
10634 			case GLOBAL:
10635 			case GRANTS:
10636 			case GROUP_REPLICATION:
10637 			case HANDLER:
10638 			case HASH:
10639 			case HELP:
10640 			case HISTOGRAM:
10641 			case HISTORY:
10642 			case HOST:
10643 			case HOSTS:
10644 			case HOUR:
10645 			case IDENTIFIED:
10646 			case IGNORE_SERVER_IDS:
10647 			case IMPORT:
10648 			case INACTIVE:
10649 			case INDEXES:
10650 			case INITIAL_SIZE:
10651 			case INSERT_METHOD:
10652 			case INSTALL:
10653 			case INSTANCE:
10654 			case INVISIBLE:
10655 			case INVOKER:
10656 			case IO:
10657 			case IPC:
10658 			case ISOLATION:
10659 			case ISSUER:
10660 			case JSON:
10661 			case JSON_VALUE:
10662 			case KEY:
10663 			case KEY_BLOCK_SIZE:
10664 			case LANGUAGE:
10665 			case LAST:
10666 			case LAST_VALUE:
10667 			case LEAVES:
10668 			case LESS:
10669 			case LEVEL:
10670 			case LINESTRING:
10671 			case LIST:
10672 			case LOCAL:
10673 			case LOCKED:
10674 			case LOCKS:
10675 			case LOGFILE:
10676 			case LOGS:
10677 			case MASTER:
10678 			case MASTER_AUTO_POSITION:
10679 			case MASTER_COMPRESSION_ALGORITHM:
10680 			case MASTER_CONNECT_RETRY:
10681 			case MASTER_DELAY:
10682 			case MASTER_HEARTBEAT_PERIOD:
10683 			case MASTER_HOST:
10684 			case MASTER_LOG_FILE:
10685 			case MASTER_LOG_POS:
10686 			case MASTER_PASSWORD:
10687 			case MASTER_PORT:
10688 			case MASTER_PUBLIC_KEY_PATH:
10689 			case MASTER_RETRY_COUNT:
10690 			case MASTER_SERVER_ID:
10691 			case MASTER_SSL:
10692 			case MASTER_SSL_CA:
10693 			case MASTER_SSL_CAPATH:
10694 			case MASTER_SSL_CERT:
10695 			case MASTER_SSL_CIPHER:
10696 			case MASTER_SSL_CRL:
10697 			case MASTER_SSL_CRLPATH:
10698 			case MASTER_SSL_KEY:
10699 			case MASTER_TLS_CIPHERSUITES:
10700 			case MASTER_TLS_VERSION:
10701 			case MASTER_USER:
10702 			case MASTER_ZSTD_COMPRESSION_LEVEL:
10703 			case MAXVALUE:
10704 			case MAX_CONNECTIONS_PER_HOUR:
10705 			case MAX_QUERIES_PER_HOUR:
10706 			case MAX_ROWS:
10707 			case MAX_SIZE:
10708 			case MAX_UPDATES_PER_HOUR:
10709 			case MAX_USER_CONNECTIONS:
10710 			case MEDIUM:
10711 			case MEMBER:
10712 			case MEMORY:
10713 			case MERGE:
10714 			case MESSAGE_TEXT:
10715 			case MICROSECOND:
10716 			case MIGRATE:
10717 			case MINUTE:
10718 			case MIN_ROWS:
10719 			case MODE:
10720 			case MODIFY:
10721 			case MONTH:
10722 			case MULTILINESTRING:
10723 			case MULTIPOINT:
10724 			case MULTIPOLYGON:
10725 			case MUTEX:
10726 			case MYSQL_ERRNO:
10727 			case NAME:
10728 			case NAMES:
10729 			case NATIONAL:
10730 			case NCHAR:
10731 			case NDBCLUSTER:
10732 			case NESTED:
10733 			case NETWORK_NAMESPACE:
10734 			case NEVER:
10735 			case NEW:
10736 			case NEXT:
10737 			case NO:
10738 			case NODEGROUP:
10739 			case NONE:
10740 			case NOWAIT:
10741 			case NO_WAIT:
10742 			case NULLS:
10743 			case NUMBER:
10744 			case NVARCHAR:
10745 			case OFF:
10746 			case OFFSET:
10747 			case OJ:
10748 			case OLD:
10749 			case ONE:
10750 			case ONLY:
10751 			case OPEN:
10752 			case OPTIONAL:
10753 			case OPTIONS:
10754 			case ORDINALITY:
10755 			case ORGANIZATION:
10756 			case OTHERS:
10757 			case OWNER:
10758 			case PACK_KEYS:
10759 			case PAGE:
10760 			case PARSER:
10761 			case PARTIAL:
10762 			case PARTITIONING:
10763 			case PARTITIONS:
10764 			case PASSWORD:
10765 			case PASSWORD_LOCK_TIME:
10766 			case PATH:
10767 			case PERSIST:
10768 			case PERSIST_ONLY:
10769 			case PHASE:
10770 			case PLUGIN:
10771 			case PLUGINS:
10772 			case PLUGIN_DIR:
10773 			case POINT:
10774 			case POLYGON:
10775 			case PORT:
10776 			case PRECEDES:
10777 			case PRECEDING:
10778 			case PREPARE:
10779 			case PRESERVE:
10780 			case PREV:
10781 			case PRIMARY:
10782 			case PRIVILEGES:
10783 			case PRIVILEGE_CHECKS_USER:
10784 			case PROCESS:
10785 			case PROCESSLIST:
10786 			case PROFILE:
10787 			case PROFILES:
10788 			case PROXY:
10789 			case QUARTER:
10790 			case QUERY:
10791 			case QUICK:
10792 			case RANDOM:
10793 			case READ_ONLY:
10794 			case REBUILD:
10795 			case RECOVER:
10796 			case REDO_BUFFER_SIZE:
10797 			case REDUNDANT:
10798 			case REFERENCE:
10799 			case RELAY:
10800 			case RELAYLOG:
10801 			case RELAY_LOG_FILE:
10802 			case RELAY_LOG_POS:
10803 			case RELAY_THREAD:
10804 			case RELOAD:
10805 			case REMOVE:
10806 			case REORGANIZE:
10807 			case REPAIR:
10808 			case REPEATABLE:
10809 			case REPLICATE_DO_DB:
10810 			case REPLICATE_DO_TABLE:
10811 			case REPLICATE_IGNORE_DB:
10812 			case REPLICATE_IGNORE_TABLE:
10813 			case REPLICATE_REWRITE_DB:
10814 			case REPLICATE_WILD_DO_TABLE:
10815 			case REPLICATE_WILD_IGNORE_TABLE:
10816 			case REPLICATION:
10817 			case REQUIRE_ROW_FORMAT:
10818 			case RESET:
10819 			case RESOURCE:
10820 			case RESPECT:
10821 			case RESTART:
10822 			case RESTORE:
10823 			case RESUME:
10824 			case RETAIN:
10825 			case RETURNED_SQLSTATE:
10826 			case RETURNING:
10827 			case RETURNS:
10828 			case REUSE:
10829 			case REVERSE:
10830 			case ROLE:
10831 			case ROLLBACK:
10832 			case ROLLUP:
10833 			case ROTATE:
10834 			case ROUTINE:
10835 			case ROW_COUNT:
10836 			case ROW_FORMAT:
10837 			case RTREE:
10838 			case SAVEPOINT:
10839 			case SCHEDULE:
10840 			case SCHEMA_NAME:
10841 			case SECOND:
10842 			case SECONDARY:
10843 			case SECONDARY_ENGINE:
10844 			case SECONDARY_ENGINE_ATTRIBUTE:
10845 			case SECONDARY_LOAD:
10846 			case SECONDARY_UNLOAD:
10847 			case SECURITY:
10848 			case SERIAL:
10849 			case SERIALIZABLE:
10850 			case SERVER:
10851 			case SESSION:
10852 			case SHARE:
10853 			case SHUTDOWN:
10854 			case SIGNED:
10855 			case SIMPLE:
10856 			case SLAVE:
10857 			case SLOW:
10858 			case SNAPSHOT:
10859 			case SOCKET:
10860 			case SONAME:
10861 			case SOUNDS:
10862 			case SOURCE:
10863 			case SQL_AFTER_GTIDS:
10864 			case SQL_AFTER_MTS_GAPS:
10865 			case SQL_BEFORE_GTIDS:
10866 			case SQL_BUFFER_RESULT:
10867 			case SQL_NO_CACHE:
10868 			case SQL_THREAD:
10869 			case SRID:
10870 			case STACKED:
10871 			case START:
10872 			case STARTS:
10873 			case STATS_AUTO_RECALC:
10874 			case STATS_PERSISTENT:
10875 			case STATS_SAMPLE_PAGES:
10876 			case STATUS:
10877 			case STOP:
10878 			case STORAGE:
10879 			case STREAM:
10880 			case STRING:
10881 			case SUBCLASS_ORIGIN:
10882 			case SUBJECT:
10883 			case SUBPARTITION:
10884 			case SUBPARTITIONS:
10885 			case SUPER:
10886 			case SUSPEND:
10887 			case SWAPS:
10888 			case SWITCHES:
10889 			case SYSTEM:
10890 			case TABLE:
10891 			case TABLES:
10892 			case TABLESPACE:
10893 			case TABLE_CHECKSUM:
10894 			case TABLE_NAME:
10895 			case TEMPORARY:
10896 			case TEMPTABLE:
10897 			case TEXT:
10898 			case THAN:
10899 			case THREAD_PRIORITY:
10900 			case TIES:
10901 			case TIME:
10902 			case TIMESTAMP:
10903 			case TIMESTAMP_ADD:
10904 			case TIMESTAMP_DIFF:
10905 			case TLS:
10906 			case TRANSACTION:
10907 			case TRIGGERS:
10908 			case TRUNCATE:
10909 			case TYPE:
10910 			case TYPES:
10911 			case UNBOUNDED:
10912 			case UNCOMMITTED:
10913 			case UNDEFINED:
10914 			case UNDOFILE:
10915 			case UNDO_BUFFER_SIZE:
10916 			case UNICODE:
10917 			case UNINSTALL:
10918 			case UNKNOWN:
10919 			case UNTIL:
10920 			case UPGRADE:
10921 			case USER:
10922 			case USER_RESOURCES:
10923 			case USE_FRM:
10924 			case UTC_DATE:
10925 			case UTC_TIME:
10926 			case UTC_TIMESTAMP:
10927 			case VALIDATION:
10928 			case VALUE:
10929 			case VARIABLES:
10930 			case VCPU:
10931 			case VIEW:
10932 			case VISIBLE:
10933 			case WAIT:
10934 			case WARNINGS:
10935 			case WEEK:
10936 			case WEIGHT_STRING:
10937 			case WITHOUT:
10938 			case WORK:
10939 			case WRAPPER:
10940 			case X509:
10941 			case XA:
10942 			case XID:
10943 			case XML:
10944 			case YEAR:
10945 			case YEAR_MONTH:
10946 			case SINGLE_QUOTED_TEXT:
10947 			case DOUBLE_QUOTED_TEXT:
10948 			case BQUOTA_STRING:
10949 			case UNDERSCORE_CHARSET:
10950 			case IDENTIFIER_:
10951 			case IP_ADDRESS:
10952 				enterOuterAlt(_localctx, 2);
10953 				{
10954 				setState(1323);
10955 				textOrIdentifier();
10956 				}
10957 				break;
10958 			default:
10959 				throw new NoViableAltException(this);
10960 			}
10961 		}
10962 		catch (RecognitionException re) {
10963 			_localctx.exception = re;
10964 			_errHandler.reportError(this, re);
10965 			_errHandler.recover(this, re);
10966 		}
10967 		finally {
10968 			exitRule();
10969 		}
10970 		return _localctx;
10971 	}
10972 
10973 	public static class SystemVariableContext extends ParserRuleContext {
10974 		public Token systemVariableScope;
10975 		public List<TerminalNode> AT_() { return getTokens(HiveStatementParser.AT_); }
10976 		public TerminalNode AT_(int i) {
10977 			return getToken(HiveStatementParser.AT_, i);
10978 		}
10979 		public RvalueSystemVariableContext rvalueSystemVariable() {
10980 			return getRuleContext(RvalueSystemVariableContext.class,0);
10981 		}
10982 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
10983 		public TerminalNode GLOBAL() { return getToken(HiveStatementParser.GLOBAL, 0); }
10984 		public TerminalNode SESSION() { return getToken(HiveStatementParser.SESSION, 0); }
10985 		public TerminalNode LOCAL() { return getToken(HiveStatementParser.LOCAL, 0); }
10986 		public SystemVariableContext(ParserRuleContext parent, int invokingState) {
10987 			super(parent, invokingState);
10988 		}
10989 		@Override public int getRuleIndex() { return RULE_systemVariable; }
10990 		@Override
10991 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
10992 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSystemVariable(this);
10993 			else return visitor.visitChildren(this);
10994 		}
10995 	}
10996 
10997 	public final SystemVariableContext systemVariable() throws RecognitionException {
10998 		SystemVariableContext _localctx = new SystemVariableContext(_ctx, getState());
10999 		enterRule(_localctx, 190, RULE_systemVariable);
11000 		int _la;
11001 		try {
11002 			enterOuterAlt(_localctx, 1);
11003 			{
11004 			setState(1326);
11005 			match(AT_);
11006 			setState(1327);
11007 			match(AT_);
11008 			setState(1330);
11009 			_errHandler.sync(this);
11010 			switch ( getInterpreter().adaptivePredict(_input,146,_ctx) ) {
11011 			case 1:
11012 				{
11013 				setState(1328);
11014 				((SystemVariableContext)_localctx).systemVariableScope = _input.LT(1);
11015 				_la = _input.LA(1);
11016 				if ( !(_la==GLOBAL || _la==LOCAL || _la==SESSION) ) {
11017 					((SystemVariableContext)_localctx).systemVariableScope = (Token)_errHandler.recoverInline(this);
11018 				}
11019 				else {
11020 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
11021 					_errHandler.reportMatch(this);
11022 					consume();
11023 				}
11024 				setState(1329);
11025 				match(DOT_);
11026 				}
11027 				break;
11028 			}
11029 			setState(1332);
11030 			rvalueSystemVariable();
11031 			}
11032 		}
11033 		catch (RecognitionException re) {
11034 			_localctx.exception = re;
11035 			_errHandler.reportError(this, re);
11036 			_errHandler.recover(this, re);
11037 		}
11038 		finally {
11039 			exitRule();
11040 		}
11041 		return _localctx;
11042 	}
11043 
11044 	public static class RvalueSystemVariableContext extends ParserRuleContext {
11045 		public TextOrIdentifierContext textOrIdentifier() {
11046 			return getRuleContext(TextOrIdentifierContext.class,0);
11047 		}
11048 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
11049 		public IdentifierContext identifier() {
11050 			return getRuleContext(IdentifierContext.class,0);
11051 		}
11052 		public RvalueSystemVariableContext(ParserRuleContext parent, int invokingState) {
11053 			super(parent, invokingState);
11054 		}
11055 		@Override public int getRuleIndex() { return RULE_rvalueSystemVariable; }
11056 		@Override
11057 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11058 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRvalueSystemVariable(this);
11059 			else return visitor.visitChildren(this);
11060 		}
11061 	}
11062 
11063 	public final RvalueSystemVariableContext rvalueSystemVariable() throws RecognitionException {
11064 		RvalueSystemVariableContext _localctx = new RvalueSystemVariableContext(_ctx, getState());
11065 		enterRule(_localctx, 192, RULE_rvalueSystemVariable);
11066 		try {
11067 			setState(1339);
11068 			_errHandler.sync(this);
11069 			switch ( getInterpreter().adaptivePredict(_input,147,_ctx) ) {
11070 			case 1:
11071 				enterOuterAlt(_localctx, 1);
11072 				{
11073 				setState(1334);
11074 				textOrIdentifier();
11075 				}
11076 				break;
11077 			case 2:
11078 				enterOuterAlt(_localctx, 2);
11079 				{
11080 				setState(1335);
11081 				textOrIdentifier();
11082 				setState(1336);
11083 				match(DOT_);
11084 				setState(1337);
11085 				identifier();
11086 				}
11087 				break;
11088 			}
11089 		}
11090 		catch (RecognitionException re) {
11091 			_localctx.exception = re;
11092 			_errHandler.reportError(this, re);
11093 			_errHandler.recover(this, re);
11094 		}
11095 		finally {
11096 			exitRule();
11097 		}
11098 		return _localctx;
11099 	}
11100 
11101 	public static class SetSystemVariableContext extends ParserRuleContext {
11102 		public List<TerminalNode> AT_() { return getTokens(HiveStatementParser.AT_); }
11103 		public TerminalNode AT_(int i) {
11104 			return getToken(HiveStatementParser.AT_, i);
11105 		}
11106 		public InternalVariableNameContext internalVariableName() {
11107 			return getRuleContext(InternalVariableNameContext.class,0);
11108 		}
11109 		public OptionTypeContext optionType() {
11110 			return getRuleContext(OptionTypeContext.class,0);
11111 		}
11112 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
11113 		public SetSystemVariableContext(ParserRuleContext parent, int invokingState) {
11114 			super(parent, invokingState);
11115 		}
11116 		@Override public int getRuleIndex() { return RULE_setSystemVariable; }
11117 		@Override
11118 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11119 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSetSystemVariable(this);
11120 			else return visitor.visitChildren(this);
11121 		}
11122 	}
11123 
11124 	public final SetSystemVariableContext setSystemVariable() throws RecognitionException {
11125 		SetSystemVariableContext _localctx = new SetSystemVariableContext(_ctx, getState());
11126 		enterRule(_localctx, 194, RULE_setSystemVariable);
11127 		try {
11128 			enterOuterAlt(_localctx, 1);
11129 			{
11130 			setState(1341);
11131 			match(AT_);
11132 			setState(1342);
11133 			match(AT_);
11134 			setState(1346);
11135 			_errHandler.sync(this);
11136 			switch ( getInterpreter().adaptivePredict(_input,148,_ctx) ) {
11137 			case 1:
11138 				{
11139 				setState(1343);
11140 				optionType();
11141 				setState(1344);
11142 				match(DOT_);
11143 				}
11144 				break;
11145 			}
11146 			setState(1348);
11147 			internalVariableName();
11148 			}
11149 		}
11150 		catch (RecognitionException re) {
11151 			_localctx.exception = re;
11152 			_errHandler.reportError(this, re);
11153 			_errHandler.recover(this, re);
11154 		}
11155 		finally {
11156 			exitRule();
11157 		}
11158 		return _localctx;
11159 	}
11160 
11161 	public static class OptionTypeContext extends ParserRuleContext {
11162 		public TerminalNode GLOBAL() { return getToken(HiveStatementParser.GLOBAL, 0); }
11163 		public TerminalNode PERSIST() { return getToken(HiveStatementParser.PERSIST, 0); }
11164 		public TerminalNode PERSIST_ONLY() { return getToken(HiveStatementParser.PERSIST_ONLY, 0); }
11165 		public TerminalNode SESSION() { return getToken(HiveStatementParser.SESSION, 0); }
11166 		public TerminalNode LOCAL() { return getToken(HiveStatementParser.LOCAL, 0); }
11167 		public OptionTypeContext(ParserRuleContext parent, int invokingState) {
11168 			super(parent, invokingState);
11169 		}
11170 		@Override public int getRuleIndex() { return RULE_optionType; }
11171 		@Override
11172 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11173 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOptionType(this);
11174 			else return visitor.visitChildren(this);
11175 		}
11176 	}
11177 
11178 	public final OptionTypeContext optionType() throws RecognitionException {
11179 		OptionTypeContext _localctx = new OptionTypeContext(_ctx, getState());
11180 		enterRule(_localctx, 196, RULE_optionType);
11181 		int _la;
11182 		try {
11183 			enterOuterAlt(_localctx, 1);
11184 			{
11185 			setState(1350);
11186 			_la = _input.LA(1);
11187 			if ( !(_la==GLOBAL || _la==LOCAL || _la==PERSIST || _la==PERSIST_ONLY || _la==SESSION) ) {
11188 			_errHandler.recoverInline(this);
11189 			}
11190 			else {
11191 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
11192 				_errHandler.reportMatch(this);
11193 				consume();
11194 			}
11195 			}
11196 		}
11197 		catch (RecognitionException re) {
11198 			_localctx.exception = re;
11199 			_errHandler.reportError(this, re);
11200 			_errHandler.recover(this, re);
11201 		}
11202 		finally {
11203 			exitRule();
11204 		}
11205 		return _localctx;
11206 	}
11207 
11208 	public static class InternalVariableNameContext extends ParserRuleContext {
11209 		public List<IdentifierContext> identifier() {
11210 			return getRuleContexts(IdentifierContext.class);
11211 		}
11212 		public IdentifierContext identifier(int i) {
11213 			return getRuleContext(IdentifierContext.class,i);
11214 		}
11215 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
11216 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
11217 		public InternalVariableNameContext(ParserRuleContext parent, int invokingState) {
11218 			super(parent, invokingState);
11219 		}
11220 		@Override public int getRuleIndex() { return RULE_internalVariableName; }
11221 		@Override
11222 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11223 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitInternalVariableName(this);
11224 			else return visitor.visitChildren(this);
11225 		}
11226 	}
11227 
11228 	public final InternalVariableNameContext internalVariableName() throws RecognitionException {
11229 		InternalVariableNameContext _localctx = new InternalVariableNameContext(_ctx, getState());
11230 		enterRule(_localctx, 198, RULE_internalVariableName);
11231 		try {
11232 			setState(1360);
11233 			_errHandler.sync(this);
11234 			switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) {
11235 			case 1:
11236 				enterOuterAlt(_localctx, 1);
11237 				{
11238 				setState(1352);
11239 				identifier();
11240 				}
11241 				break;
11242 			case 2:
11243 				enterOuterAlt(_localctx, 2);
11244 				{
11245 				setState(1353);
11246 				match(DEFAULT);
11247 				setState(1354);
11248 				match(DOT_);
11249 				setState(1355);
11250 				identifier();
11251 				}
11252 				break;
11253 			case 3:
11254 				enterOuterAlt(_localctx, 3);
11255 				{
11256 				setState(1356);
11257 				identifier();
11258 				setState(1357);
11259 				match(DOT_);
11260 				setState(1358);
11261 				identifier();
11262 				}
11263 				break;
11264 			}
11265 		}
11266 		catch (RecognitionException re) {
11267 			_localctx.exception = re;
11268 			_errHandler.reportError(this, re);
11269 			_errHandler.recover(this, re);
11270 		}
11271 		finally {
11272 			exitRule();
11273 		}
11274 		return _localctx;
11275 	}
11276 
11277 	public static class SetExprOrDefaultContext extends ParserRuleContext {
11278 		public ExprContext expr() {
11279 			return getRuleContext(ExprContext.class,0);
11280 		}
11281 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
11282 		public TerminalNode ALL() { return getToken(HiveStatementParser.ALL, 0); }
11283 		public TerminalNode ON() { return getToken(HiveStatementParser.ON, 0); }
11284 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
11285 		public TerminalNode ROW() { return getToken(HiveStatementParser.ROW, 0); }
11286 		public TerminalNode SYSTEM() { return getToken(HiveStatementParser.SYSTEM, 0); }
11287 		public SetExprOrDefaultContext(ParserRuleContext parent, int invokingState) {
11288 			super(parent, invokingState);
11289 		}
11290 		@Override public int getRuleIndex() { return RULE_setExprOrDefault; }
11291 		@Override
11292 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11293 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSetExprOrDefault(this);
11294 			else return visitor.visitChildren(this);
11295 		}
11296 	}
11297 
11298 	public final SetExprOrDefaultContext setExprOrDefault() throws RecognitionException {
11299 		SetExprOrDefaultContext _localctx = new SetExprOrDefaultContext(_ctx, getState());
11300 		enterRule(_localctx, 200, RULE_setExprOrDefault);
11301 		try {
11302 			setState(1369);
11303 			_errHandler.sync(this);
11304 			switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) {
11305 			case 1:
11306 				enterOuterAlt(_localctx, 1);
11307 				{
11308 				setState(1362);
11309 				expr(0);
11310 				}
11311 				break;
11312 			case 2:
11313 				enterOuterAlt(_localctx, 2);
11314 				{
11315 				setState(1363);
11316 				match(DEFAULT);
11317 				}
11318 				break;
11319 			case 3:
11320 				enterOuterAlt(_localctx, 3);
11321 				{
11322 				setState(1364);
11323 				match(ALL);
11324 				}
11325 				break;
11326 			case 4:
11327 				enterOuterAlt(_localctx, 4);
11328 				{
11329 				setState(1365);
11330 				match(ON);
11331 				}
11332 				break;
11333 			case 5:
11334 				enterOuterAlt(_localctx, 5);
11335 				{
11336 				setState(1366);
11337 				match(BINARY);
11338 				}
11339 				break;
11340 			case 6:
11341 				enterOuterAlt(_localctx, 6);
11342 				{
11343 				setState(1367);
11344 				match(ROW);
11345 				}
11346 				break;
11347 			case 7:
11348 				enterOuterAlt(_localctx, 7);
11349 				{
11350 				setState(1368);
11351 				match(SYSTEM);
11352 				}
11353 				break;
11354 			}
11355 		}
11356 		catch (RecognitionException re) {
11357 			_localctx.exception = re;
11358 			_errHandler.reportError(this, re);
11359 			_errHandler.recover(this, re);
11360 		}
11361 		finally {
11362 			exitRule();
11363 		}
11364 		return _localctx;
11365 	}
11366 
11367 	public static class TransactionCharacteristicsContext extends ParserRuleContext {
11368 		public TransactionAccessModeContext transactionAccessMode() {
11369 			return getRuleContext(TransactionAccessModeContext.class,0);
11370 		}
11371 		public TerminalNode COMMA_() { return getToken(HiveStatementParser.COMMA_, 0); }
11372 		public IsolationLevelContext isolationLevel() {
11373 			return getRuleContext(IsolationLevelContext.class,0);
11374 		}
11375 		public TransactionCharacteristicsContext(ParserRuleContext parent, int invokingState) {
11376 			super(parent, invokingState);
11377 		}
11378 		@Override public int getRuleIndex() { return RULE_transactionCharacteristics; }
11379 		@Override
11380 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11381 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTransactionCharacteristics(this);
11382 			else return visitor.visitChildren(this);
11383 		}
11384 	}
11385 
11386 	public final TransactionCharacteristicsContext transactionCharacteristics() throws RecognitionException {
11387 		TransactionCharacteristicsContext _localctx = new TransactionCharacteristicsContext(_ctx, getState());
11388 		enterRule(_localctx, 202, RULE_transactionCharacteristics);
11389 		int _la;
11390 		try {
11391 			setState(1381);
11392 			_errHandler.sync(this);
11393 			switch (_input.LA(1)) {
11394 			case READ:
11395 				enterOuterAlt(_localctx, 1);
11396 				{
11397 				setState(1371);
11398 				transactionAccessMode();
11399 				setState(1374);
11400 				_errHandler.sync(this);
11401 				_la = _input.LA(1);
11402 				if (_la==COMMA_) {
11403 					{
11404 					setState(1372);
11405 					match(COMMA_);
11406 					setState(1373);
11407 					isolationLevel();
11408 					}
11409 				}
11410 
11411 				}
11412 				break;
11413 			case ISOLATION:
11414 				enterOuterAlt(_localctx, 2);
11415 				{
11416 				setState(1376);
11417 				isolationLevel();
11418 				setState(1379);
11419 				_errHandler.sync(this);
11420 				_la = _input.LA(1);
11421 				if (_la==COMMA_) {
11422 					{
11423 					setState(1377);
11424 					match(COMMA_);
11425 					setState(1378);
11426 					transactionAccessMode();
11427 					}
11428 				}
11429 
11430 				}
11431 				break;
11432 			default:
11433 				throw new NoViableAltException(this);
11434 			}
11435 		}
11436 		catch (RecognitionException re) {
11437 			_localctx.exception = re;
11438 			_errHandler.reportError(this, re);
11439 			_errHandler.recover(this, re);
11440 		}
11441 		finally {
11442 			exitRule();
11443 		}
11444 		return _localctx;
11445 	}
11446 
11447 	public static class IsolationLevelContext extends ParserRuleContext {
11448 		public TerminalNode ISOLATION() { return getToken(HiveStatementParser.ISOLATION, 0); }
11449 		public TerminalNode LEVEL() { return getToken(HiveStatementParser.LEVEL, 0); }
11450 		public IsolationTypesContext isolationTypes() {
11451 			return getRuleContext(IsolationTypesContext.class,0);
11452 		}
11453 		public IsolationLevelContext(ParserRuleContext parent, int invokingState) {
11454 			super(parent, invokingState);
11455 		}
11456 		@Override public int getRuleIndex() { return RULE_isolationLevel; }
11457 		@Override
11458 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11459 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIsolationLevel(this);
11460 			else return visitor.visitChildren(this);
11461 		}
11462 	}
11463 
11464 	public final IsolationLevelContext isolationLevel() throws RecognitionException {
11465 		IsolationLevelContext _localctx = new IsolationLevelContext(_ctx, getState());
11466 		enterRule(_localctx, 204, RULE_isolationLevel);
11467 		try {
11468 			enterOuterAlt(_localctx, 1);
11469 			{
11470 			setState(1383);
11471 			match(ISOLATION);
11472 			setState(1384);
11473 			match(LEVEL);
11474 			setState(1385);
11475 			isolationTypes();
11476 			}
11477 		}
11478 		catch (RecognitionException re) {
11479 			_localctx.exception = re;
11480 			_errHandler.reportError(this, re);
11481 			_errHandler.recover(this, re);
11482 		}
11483 		finally {
11484 			exitRule();
11485 		}
11486 		return _localctx;
11487 	}
11488 
11489 	public static class IsolationTypesContext extends ParserRuleContext {
11490 		public TerminalNode REPEATABLE() { return getToken(HiveStatementParser.REPEATABLE, 0); }
11491 		public TerminalNode READ() { return getToken(HiveStatementParser.READ, 0); }
11492 		public TerminalNode COMMITTED() { return getToken(HiveStatementParser.COMMITTED, 0); }
11493 		public TerminalNode UNCOMMITTED() { return getToken(HiveStatementParser.UNCOMMITTED, 0); }
11494 		public TerminalNode SERIALIZABLE() { return getToken(HiveStatementParser.SERIALIZABLE, 0); }
11495 		public IsolationTypesContext(ParserRuleContext parent, int invokingState) {
11496 			super(parent, invokingState);
11497 		}
11498 		@Override public int getRuleIndex() { return RULE_isolationTypes; }
11499 		@Override
11500 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11501 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIsolationTypes(this);
11502 			else return visitor.visitChildren(this);
11503 		}
11504 	}
11505 
11506 	public final IsolationTypesContext isolationTypes() throws RecognitionException {
11507 		IsolationTypesContext _localctx = new IsolationTypesContext(_ctx, getState());
11508 		enterRule(_localctx, 206, RULE_isolationTypes);
11509 		try {
11510 			setState(1394);
11511 			_errHandler.sync(this);
11512 			switch ( getInterpreter().adaptivePredict(_input,154,_ctx) ) {
11513 			case 1:
11514 				enterOuterAlt(_localctx, 1);
11515 				{
11516 				setState(1387);
11517 				match(REPEATABLE);
11518 				setState(1388);
11519 				match(READ);
11520 				}
11521 				break;
11522 			case 2:
11523 				enterOuterAlt(_localctx, 2);
11524 				{
11525 				setState(1389);
11526 				match(READ);
11527 				setState(1390);
11528 				match(COMMITTED);
11529 				}
11530 				break;
11531 			case 3:
11532 				enterOuterAlt(_localctx, 3);
11533 				{
11534 				setState(1391);
11535 				match(READ);
11536 				setState(1392);
11537 				match(UNCOMMITTED);
11538 				}
11539 				break;
11540 			case 4:
11541 				enterOuterAlt(_localctx, 4);
11542 				{
11543 				setState(1393);
11544 				match(SERIALIZABLE);
11545 				}
11546 				break;
11547 			}
11548 		}
11549 		catch (RecognitionException re) {
11550 			_localctx.exception = re;
11551 			_errHandler.reportError(this, re);
11552 			_errHandler.recover(this, re);
11553 		}
11554 		finally {
11555 			exitRule();
11556 		}
11557 		return _localctx;
11558 	}
11559 
11560 	public static class TransactionAccessModeContext extends ParserRuleContext {
11561 		public TerminalNode READ() { return getToken(HiveStatementParser.READ, 0); }
11562 		public TerminalNode WRITE() { return getToken(HiveStatementParser.WRITE, 0); }
11563 		public TerminalNode ONLY() { return getToken(HiveStatementParser.ONLY, 0); }
11564 		public TransactionAccessModeContext(ParserRuleContext parent, int invokingState) {
11565 			super(parent, invokingState);
11566 		}
11567 		@Override public int getRuleIndex() { return RULE_transactionAccessMode; }
11568 		@Override
11569 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11570 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTransactionAccessMode(this);
11571 			else return visitor.visitChildren(this);
11572 		}
11573 	}
11574 
11575 	public final TransactionAccessModeContext transactionAccessMode() throws RecognitionException {
11576 		TransactionAccessModeContext _localctx = new TransactionAccessModeContext(_ctx, getState());
11577 		enterRule(_localctx, 208, RULE_transactionAccessMode);
11578 		int _la;
11579 		try {
11580 			enterOuterAlt(_localctx, 1);
11581 			{
11582 			setState(1396);
11583 			match(READ);
11584 			setState(1397);
11585 			_la = _input.LA(1);
11586 			if ( !(_la==ONLY || _la==WRITE) ) {
11587 			_errHandler.recoverInline(this);
11588 			}
11589 			else {
11590 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
11591 				_errHandler.reportMatch(this);
11592 				consume();
11593 			}
11594 			}
11595 		}
11596 		catch (RecognitionException re) {
11597 			_localctx.exception = re;
11598 			_errHandler.reportError(this, re);
11599 			_errHandler.recover(this, re);
11600 		}
11601 		finally {
11602 			exitRule();
11603 		}
11604 		return _localctx;
11605 	}
11606 
11607 	public static class SchemaNameContext extends ParserRuleContext {
11608 		public IdentifierContext identifier() {
11609 			return getRuleContext(IdentifierContext.class,0);
11610 		}
11611 		public SchemaNameContext(ParserRuleContext parent, int invokingState) {
11612 			super(parent, invokingState);
11613 		}
11614 		@Override public int getRuleIndex() { return RULE_schemaName; }
11615 		@Override
11616 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11617 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSchemaName(this);
11618 			else return visitor.visitChildren(this);
11619 		}
11620 	}
11621 
11622 	public final SchemaNameContext schemaName() throws RecognitionException {
11623 		SchemaNameContext _localctx = new SchemaNameContext(_ctx, getState());
11624 		enterRule(_localctx, 210, RULE_schemaName);
11625 		try {
11626 			enterOuterAlt(_localctx, 1);
11627 			{
11628 			setState(1399);
11629 			identifier();
11630 			}
11631 		}
11632 		catch (RecognitionException re) {
11633 			_localctx.exception = re;
11634 			_errHandler.reportError(this, re);
11635 			_errHandler.recover(this, re);
11636 		}
11637 		finally {
11638 			exitRule();
11639 		}
11640 		return _localctx;
11641 	}
11642 
11643 	public static class SchemaNamesContext extends ParserRuleContext {
11644 		public List<SchemaNameContext> schemaName() {
11645 			return getRuleContexts(SchemaNameContext.class);
11646 		}
11647 		public SchemaNameContext schemaName(int i) {
11648 			return getRuleContext(SchemaNameContext.class,i);
11649 		}
11650 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
11651 		public TerminalNode COMMA_(int i) {
11652 			return getToken(HiveStatementParser.COMMA_, i);
11653 		}
11654 		public SchemaNamesContext(ParserRuleContext parent, int invokingState) {
11655 			super(parent, invokingState);
11656 		}
11657 		@Override public int getRuleIndex() { return RULE_schemaNames; }
11658 		@Override
11659 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11660 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSchemaNames(this);
11661 			else return visitor.visitChildren(this);
11662 		}
11663 	}
11664 
11665 	public final SchemaNamesContext schemaNames() throws RecognitionException {
11666 		SchemaNamesContext _localctx = new SchemaNamesContext(_ctx, getState());
11667 		enterRule(_localctx, 212, RULE_schemaNames);
11668 		int _la;
11669 		try {
11670 			enterOuterAlt(_localctx, 1);
11671 			{
11672 			setState(1401);
11673 			schemaName();
11674 			setState(1406);
11675 			_errHandler.sync(this);
11676 			_la = _input.LA(1);
11677 			while (_la==COMMA_) {
11678 				{
11679 				{
11680 				setState(1402);
11681 				match(COMMA_);
11682 				setState(1403);
11683 				schemaName();
11684 				}
11685 				}
11686 				setState(1408);
11687 				_errHandler.sync(this);
11688 				_la = _input.LA(1);
11689 			}
11690 			}
11691 		}
11692 		catch (RecognitionException re) {
11693 			_localctx.exception = re;
11694 			_errHandler.reportError(this, re);
11695 			_errHandler.recover(this, re);
11696 		}
11697 		finally {
11698 			exitRule();
11699 		}
11700 		return _localctx;
11701 	}
11702 
11703 	public static class CharsetNameContext extends ParserRuleContext {
11704 		public TextOrIdentifierContext textOrIdentifier() {
11705 			return getRuleContext(TextOrIdentifierContext.class,0);
11706 		}
11707 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
11708 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
11709 		public CharsetNameContext(ParserRuleContext parent, int invokingState) {
11710 			super(parent, invokingState);
11711 		}
11712 		@Override public int getRuleIndex() { return RULE_charsetName; }
11713 		@Override
11714 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
11715 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCharsetName(this);
11716 			else return visitor.visitChildren(this);
11717 		}
11718 	}
11719 
11720 	public final CharsetNameContext charsetName() throws RecognitionException {
11721 		CharsetNameContext _localctx = new CharsetNameContext(_ctx, getState());
11722 		enterRule(_localctx, 214, RULE_charsetName);
11723 		try {
11724 			setState(1412);
11725 			_errHandler.sync(this);
11726 			switch (_input.LA(1)) {
11727 			case MAX:
11728 			case MIN:
11729 			case SUM:
11730 			case COUNT:
11731 			case GROUP_CONCAT:
11732 			case CAST:
11733 			case POSITION:
11734 			case SUBSTRING:
11735 			case SUBSTR:
11736 			case EXTRACT:
11737 			case TRIM:
11738 			case LAST_DAY:
11739 			case TRADITIONAL:
11740 			case TREE:
11741 			case MYSQL_MAIN:
11742 			case MYSQL_ADMIN:
11743 			case INSTANT:
11744 			case INPLACE:
11745 			case COPY:
11746 			case UL_BINARY:
11747 			case AUTOCOMMIT:
11748 			case INNODB:
11749 			case REDO_LOG:
11750 			case ACCOUNT:
11751 			case ACTION:
11752 			case ACTIVE:
11753 			case ADMIN:
11754 			case AFTER:
11755 			case AGAINST:
11756 			case AGGREGATE:
11757 			case ALGORITHM:
11758 			case ALWAYS:
11759 			case ANY:
11760 			case ARRAY:
11761 			case ASCII:
11762 			case AT:
11763 			case ATTRIBUTE:
11764 			case AUTOEXTEND_SIZE:
11765 			case AUTO_INCREMENT:
11766 			case AVG:
11767 			case BIT_XOR:
11768 			case AVG_ROW_LENGTH:
11769 			case BACKUP:
11770 			case BEGIN:
11771 			case BINLOG:
11772 			case BIT:
11773 			case BLOCK:
11774 			case BOOL:
11775 			case BOOLEAN:
11776 			case BTREE:
11777 			case BUCKETS:
11778 			case BYTE:
11779 			case CACHE:
11780 			case CASCADED:
11781 			case CATALOG_NAME:
11782 			case CHAIN:
11783 			case CHANGED:
11784 			case CHANNEL:
11785 			case CHARSET:
11786 			case CHECKSUM:
11787 			case CIPHER:
11788 			case CLASS_ORIGIN:
11789 			case CLIENT:
11790 			case CLONE:
11791 			case CLOSE:
11792 			case COALESCE:
11793 			case CODE:
11794 			case COLLATION:
11795 			case COLUMNS:
11796 			case COLUMN_FORMAT:
11797 			case COLUMN_NAME:
11798 			case COMMENT:
11799 			case COMMIT:
11800 			case COMMITTED:
11801 			case COMPACT:
11802 			case COMPLETION:
11803 			case COMPONENT:
11804 			case COMPRESSED:
11805 			case COMPRESSION:
11806 			case CONCURRENT:
11807 			case CONNECTION:
11808 			case CONSISTENT:
11809 			case CONSTRAINT_CATALOG:
11810 			case CONSTRAINT_NAME:
11811 			case CONSTRAINT_SCHEMA:
11812 			case CONTAINS:
11813 			case CONTEXT:
11814 			case CPU:
11815 			case CREATE:
11816 			case CURRENT:
11817 			case CURSOR_NAME:
11818 			case DATA:
11819 			case DATAFILE:
11820 			case DATE:
11821 			case DATETIME:
11822 			case DAY:
11823 			case DAY_MINUTE:
11824 			case DEALLOCATE:
11825 			case DEFAULT_AUTH:
11826 			case DEFINER:
11827 			case DEFINITION:
11828 			case DELAY_KEY_WRITE:
11829 			case DESCRIPTION:
11830 			case DIAGNOSTICS:
11831 			case DIRECTORY:
11832 			case DISABLE:
11833 			case DISCARD:
11834 			case DISK:
11835 			case DO:
11836 			case DUMPFILE:
11837 			case DUPLICATE:
11838 			case DYNAMIC:
11839 			case ENABLE:
11840 			case ENCRYPTION:
11841 			case END:
11842 			case ENDS:
11843 			case ENFORCED:
11844 			case ENGINE:
11845 			case ENGINES:
11846 			case ENGINE_ATTRIBUTE:
11847 			case ENUM:
11848 			case ERROR:
11849 			case ERRORS:
11850 			case ESCAPE:
11851 			case EVENT:
11852 			case EVENTS:
11853 			case EVERY:
11854 			case EXCHANGE:
11855 			case EXCLUDE:
11856 			case EXECUTE:
11857 			case EXPANSION:
11858 			case EXPIRE:
11859 			case EXPORT:
11860 			case EXTENDED:
11861 			case EXTENT_SIZE:
11862 			case FAILED_LOGIN_ATTEMPTS:
11863 			case FAST:
11864 			case FAULTS:
11865 			case FILE:
11866 			case FILE_BLOCK_SIZE:
11867 			case FILTER:
11868 			case FIRST:
11869 			case FIXED:
11870 			case FLUSH:
11871 			case FOLLOWING:
11872 			case FOLLOWS:
11873 			case FORMAT:
11874 			case FOUND:
11875 			case FULL:
11876 			case GENERAL:
11877 			case GEOMETRY:
11878 			case GEOMETRYCOLLECTION:
11879 			case GET_FORMAT:
11880 			case GET_MASTER_PUBLIC_KEY:
11881 			case GLOBAL:
11882 			case GRANTS:
11883 			case GROUP_REPLICATION:
11884 			case HANDLER:
11885 			case HASH:
11886 			case HELP:
11887 			case HISTOGRAM:
11888 			case HISTORY:
11889 			case HOST:
11890 			case HOSTS:
11891 			case HOUR:
11892 			case IDENTIFIED:
11893 			case IGNORE_SERVER_IDS:
11894 			case IMPORT:
11895 			case INACTIVE:
11896 			case INDEXES:
11897 			case INITIAL_SIZE:
11898 			case INSERT_METHOD:
11899 			case INSTALL:
11900 			case INSTANCE:
11901 			case INVISIBLE:
11902 			case INVOKER:
11903 			case IO:
11904 			case IPC:
11905 			case ISOLATION:
11906 			case ISSUER:
11907 			case JSON:
11908 			case JSON_VALUE:
11909 			case KEY:
11910 			case KEY_BLOCK_SIZE:
11911 			case LANGUAGE:
11912 			case LAST:
11913 			case LAST_VALUE:
11914 			case LEAVES:
11915 			case LESS:
11916 			case LEVEL:
11917 			case LINESTRING:
11918 			case LIST:
11919 			case LOCAL:
11920 			case LOCKED:
11921 			case LOCKS:
11922 			case LOGFILE:
11923 			case LOGS:
11924 			case MASTER:
11925 			case MASTER_AUTO_POSITION:
11926 			case MASTER_COMPRESSION_ALGORITHM:
11927 			case MASTER_CONNECT_RETRY:
11928 			case MASTER_DELAY:
11929 			case MASTER_HEARTBEAT_PERIOD:
11930 			case MASTER_HOST:
11931 			case MASTER_LOG_FILE:
11932 			case MASTER_LOG_POS:
11933 			case MASTER_PASSWORD:
11934 			case MASTER_PORT:
11935 			case MASTER_PUBLIC_KEY_PATH:
11936 			case MASTER_RETRY_COUNT:
11937 			case MASTER_SERVER_ID:
11938 			case MASTER_SSL:
11939 			case MASTER_SSL_CA:
11940 			case MASTER_SSL_CAPATH:
11941 			case MASTER_SSL_CERT:
11942 			case MASTER_SSL_CIPHER:
11943 			case MASTER_SSL_CRL:
11944 			case MASTER_SSL_CRLPATH:
11945 			case MASTER_SSL_KEY:
11946 			case MASTER_TLS_CIPHERSUITES:
11947 			case MASTER_TLS_VERSION:
11948 			case MASTER_USER:
11949 			case MASTER_ZSTD_COMPRESSION_LEVEL:
11950 			case MAXVALUE:
11951 			case MAX_CONNECTIONS_PER_HOUR:
11952 			case MAX_QUERIES_PER_HOUR:
11953 			case MAX_ROWS:
11954 			case MAX_SIZE:
11955 			case MAX_UPDATES_PER_HOUR:
11956 			case MAX_USER_CONNECTIONS:
11957 			case MEDIUM:
11958 			case MEMBER:
11959 			case MEMORY:
11960 			case MERGE:
11961 			case MESSAGE_TEXT:
11962 			case MICROSECOND:
11963 			case MIGRATE:
11964 			case MINUTE:
11965 			case MIN_ROWS:
11966 			case MODE:
11967 			case MODIFY:
11968 			case MONTH:
11969 			case MULTILINESTRING:
11970 			case MULTIPOINT:
11971 			case MULTIPOLYGON:
11972 			case MUTEX:
11973 			case MYSQL_ERRNO:
11974 			case NAME:
11975 			case NAMES:
11976 			case NATIONAL:
11977 			case NCHAR:
11978 			case NDBCLUSTER:
11979 			case NESTED:
11980 			case NETWORK_NAMESPACE:
11981 			case NEVER:
11982 			case NEW:
11983 			case NEXT:
11984 			case NO:
11985 			case NODEGROUP:
11986 			case NONE:
11987 			case NOWAIT:
11988 			case NO_WAIT:
11989 			case NULLS:
11990 			case NUMBER:
11991 			case NVARCHAR:
11992 			case OFF:
11993 			case OFFSET:
11994 			case OJ:
11995 			case OLD:
11996 			case ONE:
11997 			case ONLY:
11998 			case OPEN:
11999 			case OPTIONAL:
12000 			case OPTIONS:
12001 			case ORDINALITY:
12002 			case ORGANIZATION:
12003 			case OTHERS:
12004 			case OWNER:
12005 			case PACK_KEYS:
12006 			case PAGE:
12007 			case PARSER:
12008 			case PARTIAL:
12009 			case PARTITIONING:
12010 			case PARTITIONS:
12011 			case PASSWORD:
12012 			case PASSWORD_LOCK_TIME:
12013 			case PATH:
12014 			case PERSIST:
12015 			case PERSIST_ONLY:
12016 			case PHASE:
12017 			case PLUGIN:
12018 			case PLUGINS:
12019 			case PLUGIN_DIR:
12020 			case POINT:
12021 			case POLYGON:
12022 			case PORT:
12023 			case PRECEDES:
12024 			case PRECEDING:
12025 			case PREPARE:
12026 			case PRESERVE:
12027 			case PREV:
12028 			case PRIMARY:
12029 			case PRIVILEGES:
12030 			case PRIVILEGE_CHECKS_USER:
12031 			case PROCESS:
12032 			case PROCESSLIST:
12033 			case PROFILE:
12034 			case PROFILES:
12035 			case PROXY:
12036 			case QUARTER:
12037 			case QUERY:
12038 			case QUICK:
12039 			case RANDOM:
12040 			case READ_ONLY:
12041 			case REBUILD:
12042 			case RECOVER:
12043 			case REDO_BUFFER_SIZE:
12044 			case REDUNDANT:
12045 			case REFERENCE:
12046 			case RELAY:
12047 			case RELAYLOG:
12048 			case RELAY_LOG_FILE:
12049 			case RELAY_LOG_POS:
12050 			case RELAY_THREAD:
12051 			case RELOAD:
12052 			case REMOVE:
12053 			case REORGANIZE:
12054 			case REPAIR:
12055 			case REPEATABLE:
12056 			case REPLICATE_DO_DB:
12057 			case REPLICATE_DO_TABLE:
12058 			case REPLICATE_IGNORE_DB:
12059 			case REPLICATE_IGNORE_TABLE:
12060 			case REPLICATE_REWRITE_DB:
12061 			case REPLICATE_WILD_DO_TABLE:
12062 			case REPLICATE_WILD_IGNORE_TABLE:
12063 			case REPLICATION:
12064 			case REQUIRE_ROW_FORMAT:
12065 			case RESET:
12066 			case RESOURCE:
12067 			case RESPECT:
12068 			case RESTART:
12069 			case RESTORE:
12070 			case RESUME:
12071 			case RETAIN:
12072 			case RETURNED_SQLSTATE:
12073 			case RETURNING:
12074 			case RETURNS:
12075 			case REUSE:
12076 			case REVERSE:
12077 			case ROLE:
12078 			case ROLLBACK:
12079 			case ROLLUP:
12080 			case ROTATE:
12081 			case ROUTINE:
12082 			case ROW_COUNT:
12083 			case ROW_FORMAT:
12084 			case RTREE:
12085 			case SAVEPOINT:
12086 			case SCHEDULE:
12087 			case SCHEMA_NAME:
12088 			case SECOND:
12089 			case SECONDARY:
12090 			case SECONDARY_ENGINE:
12091 			case SECONDARY_ENGINE_ATTRIBUTE:
12092 			case SECONDARY_LOAD:
12093 			case SECONDARY_UNLOAD:
12094 			case SECURITY:
12095 			case SERIAL:
12096 			case SERIALIZABLE:
12097 			case SERVER:
12098 			case SESSION:
12099 			case SHARE:
12100 			case SHUTDOWN:
12101 			case SIGNED:
12102 			case SIMPLE:
12103 			case SLAVE:
12104 			case SLOW:
12105 			case SNAPSHOT:
12106 			case SOCKET:
12107 			case SONAME:
12108 			case SOUNDS:
12109 			case SOURCE:
12110 			case SQL_AFTER_GTIDS:
12111 			case SQL_AFTER_MTS_GAPS:
12112 			case SQL_BEFORE_GTIDS:
12113 			case SQL_BUFFER_RESULT:
12114 			case SQL_NO_CACHE:
12115 			case SQL_THREAD:
12116 			case SRID:
12117 			case STACKED:
12118 			case START:
12119 			case STARTS:
12120 			case STATS_AUTO_RECALC:
12121 			case STATS_PERSISTENT:
12122 			case STATS_SAMPLE_PAGES:
12123 			case STATUS:
12124 			case STOP:
12125 			case STORAGE:
12126 			case STREAM:
12127 			case STRING:
12128 			case SUBCLASS_ORIGIN:
12129 			case SUBJECT:
12130 			case SUBPARTITION:
12131 			case SUBPARTITIONS:
12132 			case SUPER:
12133 			case SUSPEND:
12134 			case SWAPS:
12135 			case SWITCHES:
12136 			case SYSTEM:
12137 			case TABLE:
12138 			case TABLES:
12139 			case TABLESPACE:
12140 			case TABLE_CHECKSUM:
12141 			case TABLE_NAME:
12142 			case TEMPORARY:
12143 			case TEMPTABLE:
12144 			case TEXT:
12145 			case THAN:
12146 			case THREAD_PRIORITY:
12147 			case TIES:
12148 			case TIME:
12149 			case TIMESTAMP:
12150 			case TIMESTAMP_ADD:
12151 			case TIMESTAMP_DIFF:
12152 			case TLS:
12153 			case TRANSACTION:
12154 			case TRIGGERS:
12155 			case TRUNCATE:
12156 			case TYPE:
12157 			case TYPES:
12158 			case UNBOUNDED:
12159 			case UNCOMMITTED:
12160 			case UNDEFINED:
12161 			case UNDOFILE:
12162 			case UNDO_BUFFER_SIZE:
12163 			case UNICODE:
12164 			case UNINSTALL:
12165 			case UNKNOWN:
12166 			case UNTIL:
12167 			case UPGRADE:
12168 			case USER:
12169 			case USER_RESOURCES:
12170 			case USE_FRM:
12171 			case UTC_DATE:
12172 			case UTC_TIME:
12173 			case UTC_TIMESTAMP:
12174 			case VALIDATION:
12175 			case VALUE:
12176 			case VARIABLES:
12177 			case VCPU:
12178 			case VIEW:
12179 			case VISIBLE:
12180 			case WAIT:
12181 			case WARNINGS:
12182 			case WEEK:
12183 			case WEIGHT_STRING:
12184 			case WITHOUT:
12185 			case WORK:
12186 			case WRAPPER:
12187 			case X509:
12188 			case XA:
12189 			case XID:
12190 			case XML:
12191 			case YEAR:
12192 			case YEAR_MONTH:
12193 			case SINGLE_QUOTED_TEXT:
12194 			case DOUBLE_QUOTED_TEXT:
12195 			case BQUOTA_STRING:
12196 			case UNDERSCORE_CHARSET:
12197 			case IDENTIFIER_:
12198 			case IP_ADDRESS:
12199 				enterOuterAlt(_localctx, 1);
12200 				{
12201 				setState(1409);
12202 				textOrIdentifier();
12203 				}
12204 				break;
12205 			case BINARY:
12206 				enterOuterAlt(_localctx, 2);
12207 				{
12208 				setState(1410);
12209 				match(BINARY);
12210 				}
12211 				break;
12212 			case DEFAULT:
12213 				enterOuterAlt(_localctx, 3);
12214 				{
12215 				setState(1411);
12216 				match(DEFAULT);
12217 				}
12218 				break;
12219 			default:
12220 				throw new NoViableAltException(this);
12221 			}
12222 		}
12223 		catch (RecognitionException re) {
12224 			_localctx.exception = re;
12225 			_errHandler.reportError(this, re);
12226 			_errHandler.recover(this, re);
12227 		}
12228 		finally {
12229 			exitRule();
12230 		}
12231 		return _localctx;
12232 	}
12233 
12234 	public static class SchemaPairsContext extends ParserRuleContext {
12235 		public List<SchemaPairContext> schemaPair() {
12236 			return getRuleContexts(SchemaPairContext.class);
12237 		}
12238 		public SchemaPairContext schemaPair(int i) {
12239 			return getRuleContext(SchemaPairContext.class,i);
12240 		}
12241 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
12242 		public TerminalNode COMMA_(int i) {
12243 			return getToken(HiveStatementParser.COMMA_, i);
12244 		}
12245 		public SchemaPairsContext(ParserRuleContext parent, int invokingState) {
12246 			super(parent, invokingState);
12247 		}
12248 		@Override public int getRuleIndex() { return RULE_schemaPairs; }
12249 		@Override
12250 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12251 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSchemaPairs(this);
12252 			else return visitor.visitChildren(this);
12253 		}
12254 	}
12255 
12256 	public final SchemaPairsContext schemaPairs() throws RecognitionException {
12257 		SchemaPairsContext _localctx = new SchemaPairsContext(_ctx, getState());
12258 		enterRule(_localctx, 216, RULE_schemaPairs);
12259 		int _la;
12260 		try {
12261 			enterOuterAlt(_localctx, 1);
12262 			{
12263 			setState(1414);
12264 			schemaPair();
12265 			setState(1419);
12266 			_errHandler.sync(this);
12267 			_la = _input.LA(1);
12268 			while (_la==COMMA_) {
12269 				{
12270 				{
12271 				setState(1415);
12272 				match(COMMA_);
12273 				setState(1416);
12274 				schemaPair();
12275 				}
12276 				}
12277 				setState(1421);
12278 				_errHandler.sync(this);
12279 				_la = _input.LA(1);
12280 			}
12281 			}
12282 		}
12283 		catch (RecognitionException re) {
12284 			_localctx.exception = re;
12285 			_errHandler.reportError(this, re);
12286 			_errHandler.recover(this, re);
12287 		}
12288 		finally {
12289 			exitRule();
12290 		}
12291 		return _localctx;
12292 	}
12293 
12294 	public static class SchemaPairContext extends ParserRuleContext {
12295 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
12296 		public List<SchemaNameContext> schemaName() {
12297 			return getRuleContexts(SchemaNameContext.class);
12298 		}
12299 		public SchemaNameContext schemaName(int i) {
12300 			return getRuleContext(SchemaNameContext.class,i);
12301 		}
12302 		public TerminalNode COMMA_() { return getToken(HiveStatementParser.COMMA_, 0); }
12303 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
12304 		public SchemaPairContext(ParserRuleContext parent, int invokingState) {
12305 			super(parent, invokingState);
12306 		}
12307 		@Override public int getRuleIndex() { return RULE_schemaPair; }
12308 		@Override
12309 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12310 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSchemaPair(this);
12311 			else return visitor.visitChildren(this);
12312 		}
12313 	}
12314 
12315 	public final SchemaPairContext schemaPair() throws RecognitionException {
12316 		SchemaPairContext _localctx = new SchemaPairContext(_ctx, getState());
12317 		enterRule(_localctx, 218, RULE_schemaPair);
12318 		try {
12319 			enterOuterAlt(_localctx, 1);
12320 			{
12321 			setState(1422);
12322 			match(LP_);
12323 			setState(1423);
12324 			schemaName();
12325 			setState(1424);
12326 			match(COMMA_);
12327 			setState(1425);
12328 			schemaName();
12329 			setState(1426);
12330 			match(RP_);
12331 			}
12332 		}
12333 		catch (RecognitionException re) {
12334 			_localctx.exception = re;
12335 			_errHandler.reportError(this, re);
12336 			_errHandler.recover(this, re);
12337 		}
12338 		finally {
12339 			exitRule();
12340 		}
12341 		return _localctx;
12342 	}
12343 
12344 	public static class TableNameContext extends ParserRuleContext {
12345 		public NameContext name() {
12346 			return getRuleContext(NameContext.class,0);
12347 		}
12348 		public OwnerContext owner() {
12349 			return getRuleContext(OwnerContext.class,0);
12350 		}
12351 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
12352 		public TableNameContext(ParserRuleContext parent, int invokingState) {
12353 			super(parent, invokingState);
12354 		}
12355 		@Override public int getRuleIndex() { return RULE_tableName; }
12356 		@Override
12357 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12358 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableName(this);
12359 			else return visitor.visitChildren(this);
12360 		}
12361 	}
12362 
12363 	public final TableNameContext tableName() throws RecognitionException {
12364 		TableNameContext _localctx = new TableNameContext(_ctx, getState());
12365 		enterRule(_localctx, 220, RULE_tableName);
12366 		try {
12367 			enterOuterAlt(_localctx, 1);
12368 			{
12369 			setState(1431);
12370 			_errHandler.sync(this);
12371 			switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) {
12372 			case 1:
12373 				{
12374 				setState(1428);
12375 				owner();
12376 				setState(1429);
12377 				match(DOT_);
12378 				}
12379 				break;
12380 			}
12381 			setState(1433);
12382 			name();
12383 			}
12384 		}
12385 		catch (RecognitionException re) {
12386 			_localctx.exception = re;
12387 			_errHandler.reportError(this, re);
12388 			_errHandler.recover(this, re);
12389 		}
12390 		finally {
12391 			exitRule();
12392 		}
12393 		return _localctx;
12394 	}
12395 
12396 	public static class ColumnNameContext extends ParserRuleContext {
12397 		public IdentifierContext identifier() {
12398 			return getRuleContext(IdentifierContext.class,0);
12399 		}
12400 		public ColumnNameContext(ParserRuleContext parent, int invokingState) {
12401 			super(parent, invokingState);
12402 		}
12403 		@Override public int getRuleIndex() { return RULE_columnName; }
12404 		@Override
12405 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12406 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitColumnName(this);
12407 			else return visitor.visitChildren(this);
12408 		}
12409 	}
12410 
12411 	public final ColumnNameContext columnName() throws RecognitionException {
12412 		ColumnNameContext _localctx = new ColumnNameContext(_ctx, getState());
12413 		enterRule(_localctx, 222, RULE_columnName);
12414 		try {
12415 			enterOuterAlt(_localctx, 1);
12416 			{
12417 			setState(1435);
12418 			identifier();
12419 			}
12420 		}
12421 		catch (RecognitionException re) {
12422 			_localctx.exception = re;
12423 			_errHandler.reportError(this, re);
12424 			_errHandler.recover(this, re);
12425 		}
12426 		finally {
12427 			exitRule();
12428 		}
12429 		return _localctx;
12430 	}
12431 
12432 	public static class IndexNameContext extends ParserRuleContext {
12433 		public IdentifierContext identifier() {
12434 			return getRuleContext(IdentifierContext.class,0);
12435 		}
12436 		public IndexNameContext(ParserRuleContext parent, int invokingState) {
12437 			super(parent, invokingState);
12438 		}
12439 		@Override public int getRuleIndex() { return RULE_indexName; }
12440 		@Override
12441 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12442 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIndexName(this);
12443 			else return visitor.visitChildren(this);
12444 		}
12445 	}
12446 
12447 	public final IndexNameContext indexName() throws RecognitionException {
12448 		IndexNameContext _localctx = new IndexNameContext(_ctx, getState());
12449 		enterRule(_localctx, 224, RULE_indexName);
12450 		try {
12451 			enterOuterAlt(_localctx, 1);
12452 			{
12453 			setState(1437);
12454 			identifier();
12455 			}
12456 		}
12457 		catch (RecognitionException re) {
12458 			_localctx.exception = re;
12459 			_errHandler.reportError(this, re);
12460 			_errHandler.recover(this, re);
12461 		}
12462 		finally {
12463 			exitRule();
12464 		}
12465 		return _localctx;
12466 	}
12467 
12468 	public static class ConstraintNameContext extends ParserRuleContext {
12469 		public IdentifierContext identifier() {
12470 			return getRuleContext(IdentifierContext.class,0);
12471 		}
12472 		public ConstraintNameContext(ParserRuleContext parent, int invokingState) {
12473 			super(parent, invokingState);
12474 		}
12475 		@Override public int getRuleIndex() { return RULE_constraintName; }
12476 		@Override
12477 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12478 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitConstraintName(this);
12479 			else return visitor.visitChildren(this);
12480 		}
12481 	}
12482 
12483 	public final ConstraintNameContext constraintName() throws RecognitionException {
12484 		ConstraintNameContext _localctx = new ConstraintNameContext(_ctx, getState());
12485 		enterRule(_localctx, 226, RULE_constraintName);
12486 		try {
12487 			enterOuterAlt(_localctx, 1);
12488 			{
12489 			setState(1439);
12490 			identifier();
12491 			}
12492 		}
12493 		catch (RecognitionException re) {
12494 			_localctx.exception = re;
12495 			_errHandler.reportError(this, re);
12496 			_errHandler.recover(this, re);
12497 		}
12498 		finally {
12499 			exitRule();
12500 		}
12501 		return _localctx;
12502 	}
12503 
12504 	public static class OldColumnContext extends ParserRuleContext {
12505 		public ColumnNameContext columnName() {
12506 			return getRuleContext(ColumnNameContext.class,0);
12507 		}
12508 		public OldColumnContext(ParserRuleContext parent, int invokingState) {
12509 			super(parent, invokingState);
12510 		}
12511 		@Override public int getRuleIndex() { return RULE_oldColumn; }
12512 		@Override
12513 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12514 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOldColumn(this);
12515 			else return visitor.visitChildren(this);
12516 		}
12517 	}
12518 
12519 	public final OldColumnContext oldColumn() throws RecognitionException {
12520 		OldColumnContext _localctx = new OldColumnContext(_ctx, getState());
12521 		enterRule(_localctx, 228, RULE_oldColumn);
12522 		try {
12523 			enterOuterAlt(_localctx, 1);
12524 			{
12525 			setState(1441);
12526 			columnName();
12527 			}
12528 		}
12529 		catch (RecognitionException re) {
12530 			_localctx.exception = re;
12531 			_errHandler.reportError(this, re);
12532 			_errHandler.recover(this, re);
12533 		}
12534 		finally {
12535 			exitRule();
12536 		}
12537 		return _localctx;
12538 	}
12539 
12540 	public static class NewColumnContext extends ParserRuleContext {
12541 		public ColumnNameContext columnName() {
12542 			return getRuleContext(ColumnNameContext.class,0);
12543 		}
12544 		public NewColumnContext(ParserRuleContext parent, int invokingState) {
12545 			super(parent, invokingState);
12546 		}
12547 		@Override public int getRuleIndex() { return RULE_newColumn; }
12548 		@Override
12549 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12550 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNewColumn(this);
12551 			else return visitor.visitChildren(this);
12552 		}
12553 	}
12554 
12555 	public final NewColumnContext newColumn() throws RecognitionException {
12556 		NewColumnContext _localctx = new NewColumnContext(_ctx, getState());
12557 		enterRule(_localctx, 230, RULE_newColumn);
12558 		try {
12559 			enterOuterAlt(_localctx, 1);
12560 			{
12561 			setState(1443);
12562 			columnName();
12563 			}
12564 		}
12565 		catch (RecognitionException re) {
12566 			_localctx.exception = re;
12567 			_errHandler.reportError(this, re);
12568 			_errHandler.recover(this, re);
12569 		}
12570 		finally {
12571 			exitRule();
12572 		}
12573 		return _localctx;
12574 	}
12575 
12576 	public static class DelimiterNameContext extends ParserRuleContext {
12577 		public TextOrIdentifierContext textOrIdentifier() {
12578 			return getRuleContext(TextOrIdentifierContext.class,0);
12579 		}
12580 		public List<TerminalNode> BACKSLASH_() { return getTokens(HiveStatementParser.BACKSLASH_); }
12581 		public TerminalNode BACKSLASH_(int i) {
12582 			return getToken(HiveStatementParser.BACKSLASH_, i);
12583 		}
12584 		public List<TerminalNode> SQ_() { return getTokens(HiveStatementParser.SQ_); }
12585 		public TerminalNode SQ_(int i) {
12586 			return getToken(HiveStatementParser.SQ_, i);
12587 		}
12588 		public List<TerminalNode> DQ_() { return getTokens(HiveStatementParser.DQ_); }
12589 		public TerminalNode DQ_(int i) {
12590 			return getToken(HiveStatementParser.DQ_, i);
12591 		}
12592 		public List<TerminalNode> BQ_() { return getTokens(HiveStatementParser.BQ_); }
12593 		public TerminalNode BQ_(int i) {
12594 			return getToken(HiveStatementParser.BQ_, i);
12595 		}
12596 		public DelimiterNameContext(ParserRuleContext parent, int invokingState) {
12597 			super(parent, invokingState);
12598 		}
12599 		@Override public int getRuleIndex() { return RULE_delimiterName; }
12600 		@Override
12601 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
12602 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDelimiterName(this);
12603 			else return visitor.visitChildren(this);
12604 		}
12605 	}
12606 
12607 	public final DelimiterNameContext delimiterName() throws RecognitionException {
12608 		DelimiterNameContext _localctx = new DelimiterNameContext(_ctx, getState());
12609 		enterRule(_localctx, 232, RULE_delimiterName);
12610 		int _la;
12611 		try {
12612 			setState(1453);
12613 			_errHandler.sync(this);
12614 			switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) {
12615 			case 1:
12616 				enterOuterAlt(_localctx, 1);
12617 				{
12618 				setState(1445);
12619 				textOrIdentifier();
12620 				}
12621 				break;
12622 			case 2:
12623 				enterOuterAlt(_localctx, 2);
12624 				{
12625 				setState(1449); 
12626 				_errHandler.sync(this);
12627 				_la = _input.LA(1);
12628 				do {
12629 					{
12630 					setState(1449);
12631 					_errHandler.sync(this);
12632 					switch (_input.LA(1)) {
12633 					case BACKSLASH_:
12634 						{
12635 						setState(1446);
12636 						match(BACKSLASH_);
12637 						setState(1447);
12638 						matchWildcard();
12639 						}
12640 						break;
12641 					case BLOCK_COMMENT:
12642 					case INLINE_COMMENT:
12643 					case AND_:
12644 					case OR_:
12645 					case NOT_:
12646 					case TILDE_:
12647 					case VERTICAL_BAR_:
12648 					case AMPERSAND_:
12649 					case SIGNED_LEFT_SHIFT_:
12650 					case SIGNED_RIGHT_SHIFT_:
12651 					case CARET_:
12652 					case MOD_:
12653 					case COLON_:
12654 					case PLUS_:
12655 					case MINUS_:
12656 					case ASTERISK_:
12657 					case SLASH_:
12658 					case DOT_:
12659 					case DOT_ASTERISK_:
12660 					case SAFE_EQ_:
12661 					case DEQ_:
12662 					case EQ_:
12663 					case NEQ_:
12664 					case GT_:
12665 					case GTE_:
12666 					case LT_:
12667 					case LTE_:
12668 					case POUND_:
12669 					case LP_:
12670 					case RP_:
12671 					case LBE_:
12672 					case RBE_:
12673 					case LBT_:
12674 					case RBT_:
12675 					case COMMA_:
12676 					case QUESTION_:
12677 					case AT_:
12678 					case SEMI_:
12679 					case ASSIGNMENT_:
12680 					case JSON_SEPARATOR:
12681 					case JSON_UNQUOTED_SEPARATOR:
12682 					case WS:
12683 					case MAX:
12684 					case MIN:
12685 					case SUM:
12686 					case COUNT:
12687 					case GROUP_CONCAT:
12688 					case CAST:
12689 					case POSITION:
12690 					case SUBSTRING:
12691 					case SUBSTR:
12692 					case EXTRACT:
12693 					case TRIM:
12694 					case LAST_DAY:
12695 					case TRADITIONAL:
12696 					case TREE:
12697 					case MYSQL_MAIN:
12698 					case MYSQL_ADMIN:
12699 					case INSTANT:
12700 					case INPLACE:
12701 					case COPY:
12702 					case UL_BINARY:
12703 					case AUTOCOMMIT:
12704 					case INNODB:
12705 					case REDO_LOG:
12706 					case DELIMITER:
12707 					case FOR_GENERATOR:
12708 					case ACCESSIBLE:
12709 					case ACCOUNT:
12710 					case ACTION:
12711 					case ACTIVE:
12712 					case ADD:
12713 					case ADMIN:
12714 					case AFTER:
12715 					case AGAINST:
12716 					case AGGREGATE:
12717 					case ALGORITHM:
12718 					case ALL:
12719 					case ALTER:
12720 					case ALWAYS:
12721 					case ANALYZE:
12722 					case AND:
12723 					case ANY:
12724 					case ARRAY:
12725 					case AS:
12726 					case ASC:
12727 					case ASCII:
12728 					case ASENSITIVE:
12729 					case AT:
12730 					case ATTRIBUTE:
12731 					case AUTOEXTEND_SIZE:
12732 					case AUTO_INCREMENT:
12733 					case AVG:
12734 					case ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS:
12735 					case BIT_XOR:
12736 					case AVG_ROW_LENGTH:
12737 					case BACKUP:
12738 					case BEFORE:
12739 					case BEGIN:
12740 					case BETWEEN:
12741 					case BIGINT:
12742 					case BINARY:
12743 					case BINLOG:
12744 					case BIT:
12745 					case BLOB:
12746 					case BLOCK:
12747 					case BOOL:
12748 					case BOOLEAN:
12749 					case BOTH:
12750 					case BTREE:
12751 					case BUCKETS:
12752 					case BY:
12753 					case BYTE:
12754 					case CACHE:
12755 					case CALL:
12756 					case CASCADE:
12757 					case CASCADED:
12758 					case CASE:
12759 					case CATALOG_NAME:
12760 					case CHAIN:
12761 					case CHANGE:
12762 					case CHANGED:
12763 					case CHANNEL:
12764 					case CHAR:
12765 					case CHAR_VARYING:
12766 					case CHARACTER:
12767 					case CHARACTER_VARYING:
12768 					case CHARSET:
12769 					case CHECK:
12770 					case CHECKSUM:
12771 					case CIPHER:
12772 					case CLASS_ORIGIN:
12773 					case CLIENT:
12774 					case CLONE:
12775 					case CLOSE:
12776 					case COALESCE:
12777 					case CODE:
12778 					case COLLATE:
12779 					case COLLATION:
12780 					case COLUMN:
12781 					case COLUMNS:
12782 					case COLUMN_FORMAT:
12783 					case COLUMN_NAME:
12784 					case COMMENT:
12785 					case COMMIT:
12786 					case COMMITTED:
12787 					case COMPACT:
12788 					case COMPLETION:
12789 					case COMPONENT:
12790 					case COMPRESSED:
12791 					case COMPRESSION:
12792 					case CONCURRENT:
12793 					case CONDITION:
12794 					case CONNECTION:
12795 					case CONSISTENT:
12796 					case CONSTRAINT:
12797 					case CONSTRAINT_CATALOG:
12798 					case CONSTRAINT_NAME:
12799 					case CONSTRAINT_SCHEMA:
12800 					case CONTAINS:
12801 					case CONTEXT:
12802 					case CONTINUE:
12803 					case CONVERT:
12804 					case CPU:
12805 					case CREATE:
12806 					case CROSS:
12807 					case CUBE:
12808 					case CUME_DIST:
12809 					case CURRENT:
12810 					case CURRENT_DATE:
12811 					case CURRENT_TIME:
12812 					case CURRENT_TIMESTAMP:
12813 					case CURRENT_USER:
12814 					case CURSOR:
12815 					case CURSOR_NAME:
12816 					case DATA:
12817 					case DATABASE:
12818 					case DATABASES:
12819 					case DATAFILE:
12820 					case DATE:
12821 					case DATETIME:
12822 					case DAY:
12823 					case DAY_HOUR:
12824 					case DAY_MICROSECOND:
12825 					case DAY_MINUTE:
12826 					case DAY_SECOND:
12827 					case DEALLOCATE:
12828 					case DEC:
12829 					case DECIMAL:
12830 					case DECLARE:
12831 					case DEFAULT:
12832 					case DEFAULT_AUTH:
12833 					case DEFINER:
12834 					case DEFINITION:
12835 					case DELAYED:
12836 					case DELAY_KEY_WRITE:
12837 					case DELETE:
12838 					case DENSE_RANK:
12839 					case DESC:
12840 					case DESCRIBE:
12841 					case DESCRIPTION:
12842 					case DETERMINISTIC:
12843 					case DIAGNOSTICS:
12844 					case DIRECTORY:
12845 					case DISABLE:
12846 					case DISCARD:
12847 					case DISK:
12848 					case DISTINCT:
12849 					case DISTINCTROW:
12850 					case DIV:
12851 					case DO:
12852 					case DOUBLE:
12853 					case DROP:
12854 					case DUAL:
12855 					case DUMPFILE:
12856 					case DUPLICATE:
12857 					case DYNAMIC:
12858 					case EACH:
12859 					case ELSE:
12860 					case ELSEIF:
12861 					case EMPTY:
12862 					case ENABLE:
12863 					case ENCLOSED:
12864 					case ENCRYPTION:
12865 					case END:
12866 					case ENDS:
12867 					case ENFORCED:
12868 					case ENGINE:
12869 					case ENGINES:
12870 					case ENGINE_ATTRIBUTE:
12871 					case ENUM:
12872 					case ERROR:
12873 					case ERRORS:
12874 					case ESCAPE:
12875 					case ESCAPED:
12876 					case EVENT:
12877 					case EVENTS:
12878 					case EVERY:
12879 					case EXCEPT:
12880 					case EXCHANGE:
12881 					case EXCLUDE:
12882 					case EXECUTE:
12883 					case EXISTS:
12884 					case EXIT:
12885 					case EXPANSION:
12886 					case EXPIRE:
12887 					case EXPLAIN:
12888 					case EXPORT:
12889 					case EXTENDED:
12890 					case EXTENT_SIZE:
12891 					case FAILED_LOGIN_ATTEMPTS:
12892 					case FALSE:
12893 					case FAST:
12894 					case FAULTS:
12895 					case FETCH:
12896 					case FILE:
12897 					case FILE_BLOCK_SIZE:
12898 					case FILTER:
12899 					case FIRST:
12900 					case FIRST_VALUE:
12901 					case FIXED:
12902 					case FLOAT:
12903 					case FLOAT4:
12904 					case FLOAT8:
12905 					case FLUSH:
12906 					case FOLLOWING:
12907 					case FOLLOWS:
12908 					case FOR:
12909 					case FORCE:
12910 					case FOREIGN:
12911 					case FORMAT:
12912 					case FOUND:
12913 					case FROM:
12914 					case FULL:
12915 					case FULLTEXT:
12916 					case FUNCTION:
12917 					case GENERAL:
12918 					case GENERATED:
12919 					case GEOMETRY:
12920 					case GEOMCOLLECTION:
12921 					case GEOMETRYCOLLECTION:
12922 					case GET:
12923 					case GET_FORMAT:
12924 					case GET_MASTER_PUBLIC_KEY:
12925 					case GLOBAL:
12926 					case GRANT:
12927 					case GRANTS:
12928 					case GROUP:
12929 					case GROUPING:
12930 					case GROUPS:
12931 					case GROUP_REPLICATION:
12932 					case GET_SOURCE_PUBLIC_KEY:
12933 					case GTID_ONLY:
12934 					case GENERATE:
12935 					case HANDLER:
12936 					case HASH:
12937 					case HAVING:
12938 					case HELP:
12939 					case HIGH_PRIORITY:
12940 					case HISTOGRAM:
12941 					case HISTORY:
12942 					case HOST:
12943 					case HOSTS:
12944 					case HOUR:
12945 					case HOUR_MICROSECOND:
12946 					case HOUR_MINUTE:
12947 					case HOUR_SECOND:
12948 					case IDENTIFIED:
12949 					case IF:
12950 					case IGNORE:
12951 					case IGNORE_SERVER_IDS:
12952 					case IMPORT:
12953 					case IN:
12954 					case INACTIVE:
12955 					case INDEX:
12956 					case INDEXES:
12957 					case INFILE:
12958 					case INITIAL_SIZE:
12959 					case INNER:
12960 					case INOUT:
12961 					case INSENSITIVE:
12962 					case INSERT:
12963 					case INSERT_METHOD:
12964 					case INSTALL:
12965 					case INSTANCE:
12966 					case INT:
12967 					case INT1:
12968 					case INT2:
12969 					case INT3:
12970 					case INT4:
12971 					case INT8:
12972 					case INTEGER:
12973 					case INTERVAL:
12974 					case INTO:
12975 					case INVISIBLE:
12976 					case INVOKER:
12977 					case IO:
12978 					case IO_AFTER_GTIDS:
12979 					case IO_BEFORE_GTIDS:
12980 					case IPC:
12981 					case IS:
12982 					case ISOLATION:
12983 					case ISSUER:
12984 					case ITERATE:
12985 					case JOIN:
12986 					case JSON:
12987 					case JSON_TABLE:
12988 					case JSON_VALUE:
12989 					case KEY:
12990 					case KEYS:
12991 					case KEY_BLOCK_SIZE:
12992 					case KILL:
12993 					case LAG:
12994 					case LANGUAGE:
12995 					case LAST:
12996 					case LAST_VALUE:
12997 					case LATERAL:
12998 					case LEAD:
12999 					case LEADING:
13000 					case LEAVE:
13001 					case LEAVES:
13002 					case LEFT:
13003 					case LESS:
13004 					case LEVEL:
13005 					case LIKE:
13006 					case LIMIT:
13007 					case LINEAR:
13008 					case LINES:
13009 					case LINESTRING:
13010 					case LIST:
13011 					case LOAD:
13012 					case LOCAL:
13013 					case LOCALTIME:
13014 					case LOCALTIMESTAMP:
13015 					case LOCK:
13016 					case LOCKED:
13017 					case LOCKS:
13018 					case LOGFILE:
13019 					case LOGS:
13020 					case LONG:
13021 					case LONGBLOB:
13022 					case LONGTEXT:
13023 					case LONG_CHAR_VARYING:
13024 					case LONG_VARCHAR:
13025 					case LOOP:
13026 					case LOW_PRIORITY:
13027 					case MASTER:
13028 					case MASTER_AUTO_POSITION:
13029 					case MASTER_BIND:
13030 					case MASTER_COMPRESSION_ALGORITHM:
13031 					case MASTER_CONNECT_RETRY:
13032 					case MASTER_DELAY:
13033 					case MASTER_HEARTBEAT_PERIOD:
13034 					case MASTER_HOST:
13035 					case MASTER_LOG_FILE:
13036 					case MASTER_LOG_POS:
13037 					case MASTER_PASSWORD:
13038 					case MASTER_PORT:
13039 					case MASTER_PUBLIC_KEY_PATH:
13040 					case MASTER_RETRY_COUNT:
13041 					case MASTER_SERVER_ID:
13042 					case MASTER_SSL:
13043 					case MASTER_SSL_CA:
13044 					case MASTER_SSL_CAPATH:
13045 					case MASTER_SSL_CERT:
13046 					case MASTER_SSL_CIPHER:
13047 					case MASTER_SSL_CRL:
13048 					case MASTER_SSL_CRLPATH:
13049 					case MASTER_SSL_KEY:
13050 					case MASTER_SSL_VERIFY_SERVER_CERT:
13051 					case MASTER_TLS_CIPHERSUITES:
13052 					case MASTER_TLS_VERSION:
13053 					case MASTER_USER:
13054 					case MASTER_ZSTD_COMPRESSION_LEVEL:
13055 					case MATCH:
13056 					case MAXVALUE:
13057 					case MAX_CONNECTIONS_PER_HOUR:
13058 					case MAX_QUERIES_PER_HOUR:
13059 					case MAX_ROWS:
13060 					case MAX_SIZE:
13061 					case MAX_UPDATES_PER_HOUR:
13062 					case MAX_USER_CONNECTIONS:
13063 					case MEDIUM:
13064 					case MEDIUMBLOB:
13065 					case MEDIUMINT:
13066 					case MEDIUMTEXT:
13067 					case MEMBER:
13068 					case MEMORY:
13069 					case MERGE:
13070 					case MESSAGE_TEXT:
13071 					case MICROSECOND:
13072 					case MIDDLEINT:
13073 					case MIGRATE:
13074 					case MINUTE:
13075 					case MINUTE_MICROSECOND:
13076 					case MINUTE_SECOND:
13077 					case MIN_ROWS:
13078 					case MOD:
13079 					case MODE:
13080 					case MODIFIES:
13081 					case MODIFY:
13082 					case MONTH:
13083 					case MULTILINESTRING:
13084 					case MULTIPOINT:
13085 					case MULTIPOLYGON:
13086 					case MUTEX:
13087 					case MYSQL_ERRNO:
13088 					case NAME:
13089 					case NAMES:
13090 					case NATIONAL:
13091 					case NATIONAL_CHAR:
13092 					case NATIONAL_CHAR_VARYING:
13093 					case NATURAL:
13094 					case NCHAR:
13095 					case NDBCLUSTER:
13096 					case NESTED:
13097 					case NETWORK_NAMESPACE:
13098 					case NEVER:
13099 					case NEW:
13100 					case NEXT:
13101 					case NO:
13102 					case NODEGROUP:
13103 					case NONE:
13104 					case SHARED:
13105 					case EXCLUSIVE:
13106 					case NOT:
13107 					case NOWAIT:
13108 					case NO_WAIT:
13109 					case NO_WRITE_TO_BINLOG:
13110 					case NTH_VALUE:
13111 					case NTILE:
13112 					case NULL:
13113 					case NULLS:
13114 					case NUMBER:
13115 					case NUMERIC:
13116 					case NVARCHAR:
13117 					case OF:
13118 					case OFF:
13119 					case OFFSET:
13120 					case OJ:
13121 					case OLD:
13122 					case ON:
13123 					case ONE:
13124 					case ONLY:
13125 					case OPEN:
13126 					case OPTIMIZE:
13127 					case OPTIMIZER_COSTS:
13128 					case OPTION:
13129 					case OPTIONAL:
13130 					case OPTIONALLY:
13131 					case OPTIONS:
13132 					case OR:
13133 					case ORDER:
13134 					case ORDINALITY:
13135 					case ORGANIZATION:
13136 					case OTHERS:
13137 					case OUT:
13138 					case OUTER:
13139 					case OUTFILE:
13140 					case OVER:
13141 					case OWNER:
13142 					case PACK_KEYS:
13143 					case PAGE:
13144 					case PARSER:
13145 					case PARTIAL:
13146 					case PARTITION:
13147 					case PARTITIONING:
13148 					case PARTITIONS:
13149 					case PASSWORD:
13150 					case PASSWORD_LOCK_TIME:
13151 					case PATH:
13152 					case PERCENT_RANK:
13153 					case PERSIST:
13154 					case PERSIST_ONLY:
13155 					case PHASE:
13156 					case PLUGIN:
13157 					case PLUGINS:
13158 					case PLUGIN_DIR:
13159 					case POINT:
13160 					case POLYGON:
13161 					case PORT:
13162 					case PRECEDES:
13163 					case PRECEDING:
13164 					case PRECISION:
13165 					case PREPARE:
13166 					case PRESERVE:
13167 					case PREV:
13168 					case PRIMARY:
13169 					case PRIVILEGES:
13170 					case PRIVILEGE_CHECKS_USER:
13171 					case PROCEDURE:
13172 					case PROCESS:
13173 					case PROCESSLIST:
13174 					case PROFILE:
13175 					case PROFILES:
13176 					case PROXY:
13177 					case PURGE:
13178 					case QUARTER:
13179 					case QUERY:
13180 					case QUICK:
13181 					case RANDOM:
13182 					case RANGE:
13183 					case RANK:
13184 					case READ:
13185 					case READS:
13186 					case READ_ONLY:
13187 					case READ_WRITE:
13188 					case REAL:
13189 					case REBUILD:
13190 					case RECOVER:
13191 					case RECURSIVE:
13192 					case REDO_BUFFER_SIZE:
13193 					case REDUNDANT:
13194 					case REFERENCE:
13195 					case REFERENCES:
13196 					case REGEXP:
13197 					case RELAY:
13198 					case RELAYLOG:
13199 					case RELAY_LOG_FILE:
13200 					case RELAY_LOG_POS:
13201 					case RELAY_THREAD:
13202 					case RELEASE:
13203 					case RELOAD:
13204 					case REMOVE:
13205 					case RENAME:
13206 					case REORGANIZE:
13207 					case REPAIR:
13208 					case REPEAT:
13209 					case REPEATABLE:
13210 					case REPLACE:
13211 					case REPLICA:
13212 					case REPLICAS:
13213 					case REPLICATE_DO_DB:
13214 					case REPLICATE_DO_TABLE:
13215 					case REPLICATE_IGNORE_DB:
13216 					case REPLICATE_IGNORE_TABLE:
13217 					case REPLICATE_REWRITE_DB:
13218 					case REPLICATE_WILD_DO_TABLE:
13219 					case REPLICATE_WILD_IGNORE_TABLE:
13220 					case REPLICATION:
13221 					case REQUIRE:
13222 					case REQUIRE_ROW_FORMAT:
13223 					case REQUIRE_TABLE_PRIMARY_KEY_CHECK:
13224 					case RESET:
13225 					case RESIGNAL:
13226 					case RESOURCE:
13227 					case RESPECT:
13228 					case RESTART:
13229 					case RESTORE:
13230 					case RESTRICT:
13231 					case RESUME:
13232 					case RETAIN:
13233 					case RETURN:
13234 					case RETURNED_SQLSTATE:
13235 					case RETURNING:
13236 					case RETURNS:
13237 					case REUSE:
13238 					case REVERSE:
13239 					case REVOKE:
13240 					case RIGHT:
13241 					case RLIKE:
13242 					case ROLE:
13243 					case ROLLBACK:
13244 					case ROLLUP:
13245 					case ROTATE:
13246 					case ROUTINE:
13247 					case ROW:
13248 					case ROWS:
13249 					case ROW_COUNT:
13250 					case ROW_FORMAT:
13251 					case ROW_NUMBER:
13252 					case RTREE:
13253 					case SAVEPOINT:
13254 					case SCHEDULE:
13255 					case SCHEMA:
13256 					case SCHEMAS:
13257 					case SCHEMA_NAME:
13258 					case SECOND:
13259 					case SECONDARY:
13260 					case SECONDARY_ENGINE:
13261 					case SECONDARY_ENGINE_ATTRIBUTE:
13262 					case SECONDARY_LOAD:
13263 					case SECONDARY_UNLOAD:
13264 					case SECOND_MICROSECOND:
13265 					case SECURITY:
13266 					case SELECT:
13267 					case SENSITIVE:
13268 					case SEPARATOR:
13269 					case SERIAL:
13270 					case SERIALIZABLE:
13271 					case SERVER:
13272 					case SESSION:
13273 					case SET:
13274 					case SHARE:
13275 					case SHOW:
13276 					case SHUTDOWN:
13277 					case SIGNAL:
13278 					case SIGNED:
13279 					case SIGNED_INT:
13280 					case SIGNED_INTEGER:
13281 					case SIMPLE:
13282 					case SKIP_SYMBOL:
13283 					case SLAVE:
13284 					case SLOW:
13285 					case SMALLINT:
13286 					case SNAPSHOT:
13287 					case SOCKET:
13288 					case SONAME:
13289 					case SOUNDS:
13290 					case SOURCE:
13291 					case SPATIAL:
13292 					case SPECIFIC:
13293 					case SQL:
13294 					case SQLEXCEPTION:
13295 					case SQLSTATE:
13296 					case SQLWARNING:
13297 					case SQL_AFTER_GTIDS:
13298 					case SQL_AFTER_MTS_GAPS:
13299 					case SQL_BEFORE_GTIDS:
13300 					case SQL_BIG_RESULT:
13301 					case SQL_BUFFER_RESULT:
13302 					case SQL_CALC_FOUND_ROWS:
13303 					case SQL_NO_CACHE:
13304 					case SQL_SMALL_RESULT:
13305 					case SQL_THREAD:
13306 					case SRID:
13307 					case SSL:
13308 					case STACKED:
13309 					case START:
13310 					case STARTING:
13311 					case STARTS:
13312 					case STATS_AUTO_RECALC:
13313 					case STATS_PERSISTENT:
13314 					case STATS_SAMPLE_PAGES:
13315 					case STATUS:
13316 					case STOP:
13317 					case STORAGE:
13318 					case STORED:
13319 					case STRAIGHT_JOIN:
13320 					case STREAM:
13321 					case STRING:
13322 					case SUBCLASS_ORIGIN:
13323 					case SUBJECT:
13324 					case SUBPARTITION:
13325 					case SUBPARTITIONS:
13326 					case SUPER:
13327 					case SUSPEND:
13328 					case SWAPS:
13329 					case SWITCHES:
13330 					case SYSTEM:
13331 					case SOURCE_BIND:
13332 					case SOURCE_HOST:
13333 					case SOURCE_USER:
13334 					case SOURCE_PASSWORD:
13335 					case SOURCE_PORT:
13336 					case SOURCE_LOG_FILE:
13337 					case SOURCE_LOG_POS:
13338 					case SOURCE_AUTO_POSITION:
13339 					case SOURCE_HEARTBEAT_PERIOD:
13340 					case SOURCE_CONNECT_RETRY:
13341 					case SOURCE_RETRY_COUNT:
13342 					case SOURCE_CONNECTION_AUTO_FAILOVER:
13343 					case SOURCE_DELAY:
13344 					case SOURCE_COMPRESSION_ALGORITHMS:
13345 					case SOURCE_ZSTD_COMPRESSION_LEVEL:
13346 					case SOURCE_SSL:
13347 					case SOURCE_SSL_CA:
13348 					case SOURCE_SSL_CAPATH:
13349 					case SOURCE_SSL_CERT:
13350 					case SOURCE_SSL_CRL:
13351 					case SOURCE_SSL_CRLPATH:
13352 					case SOURCE_SSL_KEY:
13353 					case SOURCE_SSL_CIPHER:
13354 					case SOURCE_SSL_VERIFY_SERVER_CERT:
13355 					case SOURCE_TLS_VERSION:
13356 					case SOURCE_TLS_CIPHERSUITES:
13357 					case SOURCE_PUBLIC_KEY_PATH:
13358 					case TABLE:
13359 					case TABLES:
13360 					case TABLESPACE:
13361 					case TABLE_CHECKSUM:
13362 					case TABLE_NAME:
13363 					case TEMPORARY:
13364 					case TEMPTABLE:
13365 					case TERMINATED:
13366 					case TEXT:
13367 					case THAN:
13368 					case THEN:
13369 					case THREAD_PRIORITY:
13370 					case TIES:
13371 					case TIME:
13372 					case TIMESTAMP:
13373 					case TIMESTAMP_ADD:
13374 					case TIMESTAMP_DIFF:
13375 					case TINYBLOB:
13376 					case TINYINT:
13377 					case TINYTEXT:
13378 					case TLS:
13379 					case TO:
13380 					case TRAILING:
13381 					case TRANSACTION:
13382 					case TRIGGER:
13383 					case TRIGGERS:
13384 					case TRUE:
13385 					case TRUNCATE:
13386 					case TYPE:
13387 					case TYPES:
13388 					case UNBOUNDED:
13389 					case UNCOMMITTED:
13390 					case UNDEFINED:
13391 					case UNDO:
13392 					case UNDOFILE:
13393 					case UNDO_BUFFER_SIZE:
13394 					case UNICODE:
13395 					case UNINSTALL:
13396 					case UNION:
13397 					case UNIQUE:
13398 					case UNKNOWN:
13399 					case UNLOCK:
13400 					case UNSIGNED:
13401 					case UNSIGNED_INT:
13402 					case UNSIGNED_INTEGER:
13403 					case UNTIL:
13404 					case UPDATE:
13405 					case UPGRADE:
13406 					case USAGE:
13407 					case USE:
13408 					case USER:
13409 					case USER_RESOURCES:
13410 					case USE_FRM:
13411 					case USING:
13412 					case UTC_DATE:
13413 					case UTC_TIME:
13414 					case UTC_TIMESTAMP:
13415 					case VALIDATION:
13416 					case VALUE:
13417 					case VALUES:
13418 					case VARBINARY:
13419 					case VARCHAR:
13420 					case VARCHARACTER:
13421 					case VARIABLES:
13422 					case VARYING:
13423 					case VCPU:
13424 					case VIEW:
13425 					case VIRTUAL:
13426 					case VISIBLE:
13427 					case WAIT:
13428 					case WARNINGS:
13429 					case WEEK:
13430 					case WEIGHT_STRING:
13431 					case WHEN:
13432 					case WHERE:
13433 					case WHILE:
13434 					case WINDOW:
13435 					case WITH:
13436 					case WITHOUT:
13437 					case WORK:
13438 					case WRAPPER:
13439 					case WRITE:
13440 					case X509:
13441 					case XA:
13442 					case XID:
13443 					case XML:
13444 					case XOR:
13445 					case YEAR:
13446 					case YEAR_MONTH:
13447 					case ZEROFILL:
13448 					case JSON_ARRAY:
13449 					case JSON_ARRAY_APPEND:
13450 					case JSON_ARRAY_INSERT:
13451 					case JSON_CONTAINS:
13452 					case JSON_CONTAINS_PATH:
13453 					case JSON_DEPTH:
13454 					case JSON_EXTRACT:
13455 					case JSON_INSERT:
13456 					case JSON_KEYS:
13457 					case JSON_LENGTH:
13458 					case JSON_MERGE:
13459 					case JSON_MERGE_PATCH:
13460 					case JSON_MERGE_PRESERVE:
13461 					case JSON_OBJECT:
13462 					case JSON_OVERLAPS:
13463 					case JSON_PRETTY:
13464 					case JSON_QUOTE:
13465 					case JSON_REMOVE:
13466 					case JSON_REPLACE:
13467 					case JSON_SCHEMA_VALID:
13468 					case JSON_SCHEMA_VALIDATION_REPORT:
13469 					case JSON_SEARCH:
13470 					case JSON_SET:
13471 					case JSON_STORAGE_FREE:
13472 					case JSON_STORAGE_SIZE:
13473 					case JSON_TYPE:
13474 					case JSON_UNQUOTE:
13475 					case JSON_VALID:
13476 					case ZONE:
13477 					case FILESIZE_LITERAL:
13478 					case SINGLE_QUOTED_TEXT:
13479 					case DOUBLE_QUOTED_TEXT:
13480 					case BQUOTA_STRING:
13481 					case NCHAR_TEXT:
13482 					case UNDERSCORE_CHARSET:
13483 					case NUMBER_:
13484 					case INT_NUM_:
13485 					case FLOAT_NUM_:
13486 					case DECIMAL_NUM_:
13487 					case HEX_DIGIT_:
13488 					case BIT_NUM_:
13489 					case IDENTIFIER_:
13490 					case IP_ADDRESS:
13491 					case NOT_SUPPORT_:
13492 						{
13493 						setState(1448);
13494 						_la = _input.LA(1);
13495 						if ( _la <= 0 || ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BACKSLASH_) | (1L << DQ_) | (1L << SQ_) | (1L << BQ_))) != 0)) ) {
13496 						_errHandler.recoverInline(this);
13497 						}
13498 						else {
13499 							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
13500 							_errHandler.reportMatch(this);
13501 							consume();
13502 						}
13503 						}
13504 						break;
13505 					default:
13506 						throw new NoViableAltException(this);
13507 					}
13508 					}
13509 					setState(1451); 
13510 					_errHandler.sync(this);
13511 					_la = _input.LA(1);
13512 				} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << BLOCK_COMMENT) | (1L << INLINE_COMMENT) | (1L << AND_) | (1L << OR_) | (1L << NOT_) | (1L << TILDE_) | (1L << VERTICAL_BAR_) | (1L << AMPERSAND_) | (1L << SIGNED_LEFT_SHIFT_) | (1L << SIGNED_RIGHT_SHIFT_) | (1L << CARET_) | (1L << MOD_) | (1L << COLON_) | (1L << PLUS_) | (1L << MINUS_) | (1L << ASTERISK_) | (1L << SLASH_) | (1L << BACKSLASH_) | (1L << DOT_) | (1L << DOT_ASTERISK_) | (1L << SAFE_EQ_) | (1L << DEQ_) | (1L << EQ_) | (1L << NEQ_) | (1L << GT_) | (1L << GTE_) | (1L << LT_) | (1L << LTE_) | (1L << POUND_) | (1L << LP_) | (1L << RP_) | (1L << LBE_) | (1L << RBE_) | (1L << LBT_) | (1L << RBT_) | (1L << COMMA_) | (1L << QUESTION_) | (1L << AT_) | (1L << SEMI_) | (1L << ASSIGNMENT_) | (1L << JSON_SEPARATOR) | (1L << JSON_UNQUOTED_SEPARATOR) | (1L << WS) | (1L << MAX) | (1L << MIN) | (1L << SUM) | (1L << COUNT) | (1L << GROUP_CONCAT) | (1L << CAST) | (1L << POSITION) | (1L << SUBSTRING) | (1L << SUBSTR) | (1L << EXTRACT) | (1L << TRIM) | (1L << LAST_DAY) | (1L << TRADITIONAL) | (1L << TREE) | (1L << MYSQL_MAIN) | (1L << MYSQL_ADMIN) | (1L << INSTANT))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (INPLACE - 64)) | (1L << (COPY - 64)) | (1L << (UL_BINARY - 64)) | (1L << (AUTOCOMMIT - 64)) | (1L << (INNODB - 64)) | (1L << (REDO_LOG - 64)) | (1L << (DELIMITER - 64)) | (1L << (FOR_GENERATOR - 64)) | (1L << (ACCESSIBLE - 64)) | (1L << (ACCOUNT - 64)) | (1L << (ACTION - 64)) | (1L << (ACTIVE - 64)) | (1L << (ADD - 64)) | (1L << (ADMIN - 64)) | (1L << (AFTER - 64)) | (1L << (AGAINST - 64)) | (1L << (AGGREGATE - 64)) | (1L << (ALGORITHM - 64)) | (1L << (ALL - 64)) | (1L << (ALTER - 64)) | (1L << (ALWAYS - 64)) | (1L << (ANALYZE - 64)) | (1L << (AND - 64)) | (1L << (ANY - 64)) | (1L << (ARRAY - 64)) | (1L << (AS - 64)) | (1L << (ASC - 64)) | (1L << (ASCII - 64)) | (1L << (ASENSITIVE - 64)) | (1L << (AT - 64)) | (1L << (ATTRIBUTE - 64)) | (1L << (AUTOEXTEND_SIZE - 64)) | (1L << (AUTO_INCREMENT - 64)) | (1L << (AVG - 64)) | (1L << (ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS - 64)) | (1L << (BIT_XOR - 64)) | (1L << (AVG_ROW_LENGTH - 64)) | (1L << (BACKUP - 64)) | (1L << (BEFORE - 64)) | (1L << (BEGIN - 64)) | (1L << (BETWEEN - 64)) | (1L << (BIGINT - 64)) | (1L << (BINARY - 64)) | (1L << (BINLOG - 64)) | (1L << (BIT - 64)) | (1L << (BLOB - 64)) | (1L << (BLOCK - 64)) | (1L << (BOOL - 64)) | (1L << (BOOLEAN - 64)) | (1L << (BOTH - 64)) | (1L << (BTREE - 64)) | (1L << (BUCKETS - 64)) | (1L << (BY - 64)) | (1L << (BYTE - 64)) | (1L << (CACHE - 64)) | (1L << (CALL - 64)) | (1L << (CASCADE - 64)) | (1L << (CASCADED - 64)) | (1L << (CASE - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CHAIN - 64)) | (1L << (CHANGE - 64)) | (1L << (CHANGED - 64)) | (1L << (CHANNEL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CHAR - 128)) | (1L << (CHAR_VARYING - 128)) | (1L << (CHARACTER - 128)) | (1L << (CHARACTER_VARYING - 128)) | (1L << (CHARSET - 128)) | (1L << (CHECK - 128)) | (1L << (CHECKSUM - 128)) | (1L << (CIPHER - 128)) | (1L << (CLASS_ORIGIN - 128)) | (1L << (CLIENT - 128)) | (1L << (CLONE - 128)) | (1L << (CLOSE - 128)) | (1L << (COALESCE - 128)) | (1L << (CODE - 128)) | (1L << (COLLATE - 128)) | (1L << (COLLATION - 128)) | (1L << (COLUMN - 128)) | (1L << (COLUMNS - 128)) | (1L << (COLUMN_FORMAT - 128)) | (1L << (COLUMN_NAME - 128)) | (1L << (COMMENT - 128)) | (1L << (COMMIT - 128)) | (1L << (COMMITTED - 128)) | (1L << (COMPACT - 128)) | (1L << (COMPLETION - 128)) | (1L << (COMPONENT - 128)) | (1L << (COMPRESSED - 128)) | (1L << (COMPRESSION - 128)) | (1L << (CONCURRENT - 128)) | (1L << (CONDITION - 128)) | (1L << (CONNECTION - 128)) | (1L << (CONSISTENT - 128)) | (1L << (CONSTRAINT - 128)) | (1L << (CONSTRAINT_CATALOG - 128)) | (1L << (CONSTRAINT_NAME - 128)) | (1L << (CONSTRAINT_SCHEMA - 128)) | (1L << (CONTAINS - 128)) | (1L << (CONTEXT - 128)) | (1L << (CONTINUE - 128)) | (1L << (CONVERT - 128)) | (1L << (CPU - 128)) | (1L << (CREATE - 128)) | (1L << (CROSS - 128)) | (1L << (CUBE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATABASES - 128)) | (1L << (DATAFILE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME - 128)) | (1L << (DAY - 128)) | (1L << (DAY_HOUR - 128)) | (1L << (DAY_MICROSECOND - 128)) | (1L << (DAY_MINUTE - 128)) | (1L << (DAY_SECOND - 128)) | (1L << (DEALLOCATE - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (DEC - 192)) | (1L << (DECIMAL - 192)) | (1L << (DECLARE - 192)) | (1L << (DEFAULT - 192)) | (1L << (DEFAULT_AUTH - 192)) | (1L << (DEFINER - 192)) | (1L << (DEFINITION - 192)) | (1L << (DELAYED - 192)) | (1L << (DELAY_KEY_WRITE - 192)) | (1L << (DELETE - 192)) | (1L << (DENSE_RANK - 192)) | (1L << (DESC - 192)) | (1L << (DESCRIBE - 192)) | (1L << (DESCRIPTION - 192)) | (1L << (DETERMINISTIC - 192)) | (1L << (DIAGNOSTICS - 192)) | (1L << (DIRECTORY - 192)) | (1L << (DISABLE - 192)) | (1L << (DISCARD - 192)) | (1L << (DISK - 192)) | (1L << (DISTINCT - 192)) | (1L << (DISTINCTROW - 192)) | (1L << (DIV - 192)) | (1L << (DO - 192)) | (1L << (DOUBLE - 192)) | (1L << (DROP - 192)) | (1L << (DUAL - 192)) | (1L << (DUMPFILE - 192)) | (1L << (DUPLICATE - 192)) | (1L << (DYNAMIC - 192)) | (1L << (EACH - 192)) | (1L << (ELSE - 192)) | (1L << (ELSEIF - 192)) | (1L << (EMPTY - 192)) | (1L << (ENABLE - 192)) | (1L << (ENCLOSED - 192)) | (1L << (ENCRYPTION - 192)) | (1L << (END - 192)) | (1L << (ENDS - 192)) | (1L << (ENFORCED - 192)) | (1L << (ENGINE - 192)) | (1L << (ENGINES - 192)) | (1L << (ENGINE_ATTRIBUTE - 192)) | (1L << (ENUM - 192)) | (1L << (ERROR - 192)) | (1L << (ERRORS - 192)) | (1L << (ESCAPE - 192)) | (1L << (ESCAPED - 192)) | (1L << (EVENT - 192)) | (1L << (EVENTS - 192)) | (1L << (EVERY - 192)) | (1L << (EXCEPT - 192)) | (1L << (EXCHANGE - 192)) | (1L << (EXCLUDE - 192)) | (1L << (EXECUTE - 192)) | (1L << (EXISTS - 192)) | (1L << (EXIT - 192)) | (1L << (EXPANSION - 192)) | (1L << (EXPIRE - 192)) | (1L << (EXPLAIN - 192)) | (1L << (EXPORT - 192)) | (1L << (EXTENDED - 192)) | (1L << (EXTENT_SIZE - 192)) | (1L << (FAILED_LOGIN_ATTEMPTS - 192)))) != 0) || ((((_la - 256)) & ~0x3f) == 0 && ((1L << (_la - 256)) & ((1L << (FALSE - 256)) | (1L << (FAST - 256)) | (1L << (FAULTS - 256)) | (1L << (FETCH - 256)) | (1L << (FILE - 256)) | (1L << (FILE_BLOCK_SIZE - 256)) | (1L << (FILTER - 256)) | (1L << (FIRST - 256)) | (1L << (FIRST_VALUE - 256)) | (1L << (FIXED - 256)) | (1L << (FLOAT - 256)) | (1L << (FLOAT4 - 256)) | (1L << (FLOAT8 - 256)) | (1L << (FLUSH - 256)) | (1L << (FOLLOWING - 256)) | (1L << (FOLLOWS - 256)) | (1L << (FOR - 256)) | (1L << (FORCE - 256)) | (1L << (FOREIGN - 256)) | (1L << (FORMAT - 256)) | (1L << (FOUND - 256)) | (1L << (FROM - 256)) | (1L << (FULL - 256)) | (1L << (FULLTEXT - 256)) | (1L << (FUNCTION - 256)) | (1L << (GENERAL - 256)) | (1L << (GENERATED - 256)) | (1L << (GEOMETRY - 256)) | (1L << (GEOMCOLLECTION - 256)) | (1L << (GEOMETRYCOLLECTION - 256)) | (1L << (GET - 256)) | (1L << (GET_FORMAT - 256)) | (1L << (GET_MASTER_PUBLIC_KEY - 256)) | (1L << (GLOBAL - 256)) | (1L << (GRANT - 256)) | (1L << (GRANTS - 256)) | (1L << (GROUP - 256)) | (1L << (GROUPING - 256)) | (1L << (GROUPS - 256)) | (1L << (GROUP_REPLICATION - 256)) | (1L << (GET_SOURCE_PUBLIC_KEY - 256)) | (1L << (GTID_ONLY - 256)) | (1L << (GENERATE - 256)) | (1L << (HANDLER - 256)) | (1L << (HASH - 256)) | (1L << (HAVING - 256)) | (1L << (HELP - 256)) | (1L << (HIGH_PRIORITY - 256)) | (1L << (HISTOGRAM - 256)) | (1L << (HISTORY - 256)) | (1L << (HOST - 256)) | (1L << (HOSTS - 256)) | (1L << (HOUR - 256)) | (1L << (HOUR_MICROSECOND - 256)) | (1L << (HOUR_MINUTE - 256)) | (1L << (HOUR_SECOND - 256)) | (1L << (IDENTIFIED - 256)) | (1L << (IF - 256)) | (1L << (IGNORE - 256)) | (1L << (IGNORE_SERVER_IDS - 256)) | (1L << (IMPORT - 256)) | (1L << (IN - 256)) | (1L << (INACTIVE - 256)) | (1L << (INDEX - 256)))) != 0) || ((((_la - 320)) & ~0x3f) == 0 && ((1L << (_la - 320)) & ((1L << (INDEXES - 320)) | (1L << (INFILE - 320)) | (1L << (INITIAL_SIZE - 320)) | (1L << (INNER - 320)) | (1L << (INOUT - 320)) | (1L << (INSENSITIVE - 320)) | (1L << (INSERT - 320)) | (1L << (INSERT_METHOD - 320)) | (1L << (INSTALL - 320)) | (1L << (INSTANCE - 320)) | (1L << (INT - 320)) | (1L << (INT1 - 320)) | (1L << (INT2 - 320)) | (1L << (INT3 - 320)) | (1L << (INT4 - 320)) | (1L << (INT8 - 320)) | (1L << (INTEGER - 320)) | (1L << (INTERVAL - 320)) | (1L << (INTO - 320)) | (1L << (INVISIBLE - 320)) | (1L << (INVOKER - 320)) | (1L << (IO - 320)) | (1L << (IO_AFTER_GTIDS - 320)) | (1L << (IO_BEFORE_GTIDS - 320)) | (1L << (IPC - 320)) | (1L << (IS - 320)) | (1L << (ISOLATION - 320)) | (1L << (ISSUER - 320)) | (1L << (ITERATE - 320)) | (1L << (JOIN - 320)) | (1L << (JSON - 320)) | (1L << (JSON_TABLE - 320)) | (1L << (JSON_VALUE - 320)) | (1L << (KEY - 320)) | (1L << (KEYS - 320)) | (1L << (KEY_BLOCK_SIZE - 320)) | (1L << (KILL - 320)) | (1L << (LAG - 320)) | (1L << (LANGUAGE - 320)) | (1L << (LAST - 320)) | (1L << (LAST_VALUE - 320)) | (1L << (LATERAL - 320)) | (1L << (LEAD - 320)) | (1L << (LEADING - 320)) | (1L << (LEAVE - 320)) | (1L << (LEAVES - 320)) | (1L << (LEFT - 320)) | (1L << (LESS - 320)) | (1L << (LEVEL - 320)) | (1L << (LIKE - 320)) | (1L << (LIMIT - 320)) | (1L << (LINEAR - 320)) | (1L << (LINES - 320)) | (1L << (LINESTRING - 320)) | (1L << (LIST - 320)) | (1L << (LOAD - 320)) | (1L << (LOCAL - 320)) | (1L << (LOCALTIME - 320)) | (1L << (LOCALTIMESTAMP - 320)) | (1L << (LOCK - 320)) | (1L << (LOCKED - 320)) | (1L << (LOCKS - 320)) | (1L << (LOGFILE - 320)) | (1L << (LOGS - 320)))) != 0) || ((((_la - 384)) & ~0x3f) == 0 && ((1L << (_la - 384)) & ((1L << (LONG - 384)) | (1L << (LONGBLOB - 384)) | (1L << (LONGTEXT - 384)) | (1L << (LONG_CHAR_VARYING - 384)) | (1L << (LONG_VARCHAR - 384)) | (1L << (LOOP - 384)) | (1L << (LOW_PRIORITY - 384)) | (1L << (MASTER - 384)) | (1L << (MASTER_AUTO_POSITION - 384)) | (1L << (MASTER_BIND - 384)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 384)) | (1L << (MASTER_CONNECT_RETRY - 384)) | (1L << (MASTER_DELAY - 384)) | (1L << (MASTER_HEARTBEAT_PERIOD - 384)) | (1L << (MASTER_HOST - 384)) | (1L << (MASTER_LOG_FILE - 384)) | (1L << (MASTER_LOG_POS - 384)) | (1L << (MASTER_PASSWORD - 384)) | (1L << (MASTER_PORT - 384)) | (1L << (MASTER_PUBLIC_KEY_PATH - 384)) | (1L << (MASTER_RETRY_COUNT - 384)) | (1L << (MASTER_SERVER_ID - 384)) | (1L << (MASTER_SSL - 384)) | (1L << (MASTER_SSL_CA - 384)) | (1L << (MASTER_SSL_CAPATH - 384)) | (1L << (MASTER_SSL_CERT - 384)) | (1L << (MASTER_SSL_CIPHER - 384)) | (1L << (MASTER_SSL_CRL - 384)) | (1L << (MASTER_SSL_CRLPATH - 384)) | (1L << (MASTER_SSL_KEY - 384)) | (1L << (MASTER_SSL_VERIFY_SERVER_CERT - 384)) | (1L << (MASTER_TLS_CIPHERSUITES - 384)) | (1L << (MASTER_TLS_VERSION - 384)) | (1L << (MASTER_USER - 384)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 384)) | (1L << (MATCH - 384)) | (1L << (MAXVALUE - 384)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 384)) | (1L << (MAX_QUERIES_PER_HOUR - 384)) | (1L << (MAX_ROWS - 384)) | (1L << (MAX_SIZE - 384)) | (1L << (MAX_UPDATES_PER_HOUR - 384)) | (1L << (MAX_USER_CONNECTIONS - 384)) | (1L << (MEDIUM - 384)) | (1L << (MEDIUMBLOB - 384)) | (1L << (MEDIUMINT - 384)) | (1L << (MEDIUMTEXT - 384)) | (1L << (MEMBER - 384)) | (1L << (MEMORY - 384)) | (1L << (MERGE - 384)) | (1L << (MESSAGE_TEXT - 384)) | (1L << (MICROSECOND - 384)) | (1L << (MIDDLEINT - 384)) | (1L << (MIGRATE - 384)) | (1L << (MINUTE - 384)) | (1L << (MINUTE_MICROSECOND - 384)) | (1L << (MINUTE_SECOND - 384)) | (1L << (MIN_ROWS - 384)) | (1L << (MOD - 384)) | (1L << (MODE - 384)) | (1L << (MODIFIES - 384)) | (1L << (MODIFY - 384)) | (1L << (MONTH - 384)) | (1L << (MULTILINESTRING - 384)))) != 0) || ((((_la - 448)) & ~0x3f) == 0 && ((1L << (_la - 448)) & ((1L << (MULTIPOINT - 448)) | (1L << (MULTIPOLYGON - 448)) | (1L << (MUTEX - 448)) | (1L << (MYSQL_ERRNO - 448)) | (1L << (NAME - 448)) | (1L << (NAMES - 448)) | (1L << (NATIONAL - 448)) | (1L << (NATIONAL_CHAR - 448)) | (1L << (NATIONAL_CHAR_VARYING - 448)) | (1L << (NATURAL - 448)) | (1L << (NCHAR - 448)) | (1L << (NDBCLUSTER - 448)) | (1L << (NESTED - 448)) | (1L << (NETWORK_NAMESPACE - 448)) | (1L << (NEVER - 448)) | (1L << (NEW - 448)) | (1L << (NEXT - 448)) | (1L << (NO - 448)) | (1L << (NODEGROUP - 448)) | (1L << (NONE - 448)) | (1L << (SHARED - 448)) | (1L << (EXCLUSIVE - 448)) | (1L << (NOT - 448)) | (1L << (NOWAIT - 448)) | (1L << (NO_WAIT - 448)) | (1L << (NO_WRITE_TO_BINLOG - 448)) | (1L << (NTH_VALUE - 448)) | (1L << (NTILE - 448)) | (1L << (NULL - 448)) | (1L << (NULLS - 448)) | (1L << (NUMBER - 448)) | (1L << (NUMERIC - 448)) | (1L << (NVARCHAR - 448)) | (1L << (OF - 448)) | (1L << (OFF - 448)) | (1L << (OFFSET - 448)) | (1L << (OJ - 448)) | (1L << (OLD - 448)) | (1L << (ON - 448)) | (1L << (ONE - 448)) | (1L << (ONLY - 448)) | (1L << (OPEN - 448)) | (1L << (OPTIMIZE - 448)) | (1L << (OPTIMIZER_COSTS - 448)) | (1L << (OPTION - 448)) | (1L << (OPTIONAL - 448)) | (1L << (OPTIONALLY - 448)) | (1L << (OPTIONS - 448)) | (1L << (OR - 448)) | (1L << (ORDER - 448)) | (1L << (ORDINALITY - 448)) | (1L << (ORGANIZATION - 448)) | (1L << (OTHERS - 448)) | (1L << (OUT - 448)) | (1L << (OUTER - 448)) | (1L << (OUTFILE - 448)) | (1L << (OVER - 448)) | (1L << (OWNER - 448)) | (1L << (PACK_KEYS - 448)) | (1L << (PAGE - 448)) | (1L << (PARSER - 448)) | (1L << (PARTIAL - 448)) | (1L << (PARTITION - 448)) | (1L << (PARTITIONING - 448)))) != 0) || ((((_la - 512)) & ~0x3f) == 0 && ((1L << (_la - 512)) & ((1L << (PARTITIONS - 512)) | (1L << (PASSWORD - 512)) | (1L << (PASSWORD_LOCK_TIME - 512)) | (1L << (PATH - 512)) | (1L << (PERCENT_RANK - 512)) | (1L << (PERSIST - 512)) | (1L << (PERSIST_ONLY - 512)) | (1L << (PHASE - 512)) | (1L << (PLUGIN - 512)) | (1L << (PLUGINS - 512)) | (1L << (PLUGIN_DIR - 512)) | (1L << (POINT - 512)) | (1L << (POLYGON - 512)) | (1L << (PORT - 512)) | (1L << (PRECEDES - 512)) | (1L << (PRECEDING - 512)) | (1L << (PRECISION - 512)) | (1L << (PREPARE - 512)) | (1L << (PRESERVE - 512)) | (1L << (PREV - 512)) | (1L << (PRIMARY - 512)) | (1L << (PRIVILEGES - 512)) | (1L << (PRIVILEGE_CHECKS_USER - 512)) | (1L << (PROCEDURE - 512)) | (1L << (PROCESS - 512)) | (1L << (PROCESSLIST - 512)) | (1L << (PROFILE - 512)) | (1L << (PROFILES - 512)) | (1L << (PROXY - 512)) | (1L << (PURGE - 512)) | (1L << (QUARTER - 512)) | (1L << (QUERY - 512)) | (1L << (QUICK - 512)) | (1L << (RANDOM - 512)) | (1L << (RANGE - 512)) | (1L << (RANK - 512)) | (1L << (READ - 512)) | (1L << (READS - 512)) | (1L << (READ_ONLY - 512)) | (1L << (READ_WRITE - 512)) | (1L << (REAL - 512)) | (1L << (REBUILD - 512)) | (1L << (RECOVER - 512)) | (1L << (RECURSIVE - 512)) | (1L << (REDO_BUFFER_SIZE - 512)) | (1L << (REDUNDANT - 512)) | (1L << (REFERENCE - 512)) | (1L << (REFERENCES - 512)) | (1L << (REGEXP - 512)) | (1L << (RELAY - 512)) | (1L << (RELAYLOG - 512)) | (1L << (RELAY_LOG_FILE - 512)) | (1L << (RELAY_LOG_POS - 512)) | (1L << (RELAY_THREAD - 512)) | (1L << (RELEASE - 512)) | (1L << (RELOAD - 512)) | (1L << (REMOVE - 512)) | (1L << (RENAME - 512)) | (1L << (REORGANIZE - 512)) | (1L << (REPAIR - 512)) | (1L << (REPEAT - 512)) | (1L << (REPEATABLE - 512)) | (1L << (REPLACE - 512)) | (1L << (REPLICA - 512)))) != 0) || ((((_la - 576)) & ~0x3f) == 0 && ((1L << (_la - 576)) & ((1L << (REPLICAS - 576)) | (1L << (REPLICATE_DO_DB - 576)) | (1L << (REPLICATE_DO_TABLE - 576)) | (1L << (REPLICATE_IGNORE_DB - 576)) | (1L << (REPLICATE_IGNORE_TABLE - 576)) | (1L << (REPLICATE_REWRITE_DB - 576)) | (1L << (REPLICATE_WILD_DO_TABLE - 576)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 576)) | (1L << (REPLICATION - 576)) | (1L << (REQUIRE - 576)) | (1L << (REQUIRE_ROW_FORMAT - 576)) | (1L << (REQUIRE_TABLE_PRIMARY_KEY_CHECK - 576)) | (1L << (RESET - 576)) | (1L << (RESIGNAL - 576)) | (1L << (RESOURCE - 576)) | (1L << (RESPECT - 576)) | (1L << (RESTART - 576)) | (1L << (RESTORE - 576)) | (1L << (RESTRICT - 576)) | (1L << (RESUME - 576)) | (1L << (RETAIN - 576)) | (1L << (RETURN - 576)) | (1L << (RETURNED_SQLSTATE - 576)) | (1L << (RETURNING - 576)) | (1L << (RETURNS - 576)) | (1L << (REUSE - 576)) | (1L << (REVERSE - 576)) | (1L << (REVOKE - 576)) | (1L << (RIGHT - 576)) | (1L << (RLIKE - 576)) | (1L << (ROLE - 576)) | (1L << (ROLLBACK - 576)) | (1L << (ROLLUP - 576)) | (1L << (ROTATE - 576)) | (1L << (ROUTINE - 576)) | (1L << (ROW - 576)) | (1L << (ROWS - 576)) | (1L << (ROW_COUNT - 576)) | (1L << (ROW_FORMAT - 576)) | (1L << (ROW_NUMBER - 576)) | (1L << (RTREE - 576)) | (1L << (SAVEPOINT - 576)) | (1L << (SCHEDULE - 576)) | (1L << (SCHEMA - 576)) | (1L << (SCHEMAS - 576)) | (1L << (SCHEMA_NAME - 576)) | (1L << (SECOND - 576)) | (1L << (SECONDARY - 576)) | (1L << (SECONDARY_ENGINE - 576)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 576)) | (1L << (SECONDARY_LOAD - 576)) | (1L << (SECONDARY_UNLOAD - 576)) | (1L << (SECOND_MICROSECOND - 576)) | (1L << (SECURITY - 576)) | (1L << (SELECT - 576)) | (1L << (SENSITIVE - 576)) | (1L << (SEPARATOR - 576)) | (1L << (SERIAL - 576)) | (1L << (SERIALIZABLE - 576)) | (1L << (SERVER - 576)) | (1L << (SESSION - 576)) | (1L << (SET - 576)) | (1L << (SHARE - 576)) | (1L << (SHOW - 576)))) != 0) || ((((_la - 640)) & ~0x3f) == 0 && ((1L << (_la - 640)) & ((1L << (SHUTDOWN - 640)) | (1L << (SIGNAL - 640)) | (1L << (SIGNED - 640)) | (1L << (SIGNED_INT - 640)) | (1L << (SIGNED_INTEGER - 640)) | (1L << (SIMPLE - 640)) | (1L << (SKIP_SYMBOL - 640)) | (1L << (SLAVE - 640)) | (1L << (SLOW - 640)) | (1L << (SMALLINT - 640)) | (1L << (SNAPSHOT - 640)) | (1L << (SOCKET - 640)) | (1L << (SONAME - 640)) | (1L << (SOUNDS - 640)) | (1L << (SOURCE - 640)) | (1L << (SPATIAL - 640)) | (1L << (SPECIFIC - 640)) | (1L << (SQL - 640)) | (1L << (SQLEXCEPTION - 640)) | (1L << (SQLSTATE - 640)) | (1L << (SQLWARNING - 640)) | (1L << (SQL_AFTER_GTIDS - 640)) | (1L << (SQL_AFTER_MTS_GAPS - 640)) | (1L << (SQL_BEFORE_GTIDS - 640)) | (1L << (SQL_BIG_RESULT - 640)) | (1L << (SQL_BUFFER_RESULT - 640)) | (1L << (SQL_CALC_FOUND_ROWS - 640)) | (1L << (SQL_NO_CACHE - 640)) | (1L << (SQL_SMALL_RESULT - 640)) | (1L << (SQL_THREAD - 640)) | (1L << (SRID - 640)) | (1L << (SSL - 640)) | (1L << (STACKED - 640)) | (1L << (START - 640)) | (1L << (STARTING - 640)) | (1L << (STARTS - 640)) | (1L << (STATS_AUTO_RECALC - 640)) | (1L << (STATS_PERSISTENT - 640)) | (1L << (STATS_SAMPLE_PAGES - 640)) | (1L << (STATUS - 640)) | (1L << (STOP - 640)) | (1L << (STORAGE - 640)) | (1L << (STORED - 640)) | (1L << (STRAIGHT_JOIN - 640)) | (1L << (STREAM - 640)) | (1L << (STRING - 640)) | (1L << (SUBCLASS_ORIGIN - 640)) | (1L << (SUBJECT - 640)) | (1L << (SUBPARTITION - 640)) | (1L << (SUBPARTITIONS - 640)) | (1L << (SUPER - 640)) | (1L << (SUSPEND - 640)) | (1L << (SWAPS - 640)) | (1L << (SWITCHES - 640)) | (1L << (SYSTEM - 640)) | (1L << (SOURCE_BIND - 640)) | (1L << (SOURCE_HOST - 640)) | (1L << (SOURCE_USER - 640)) | (1L << (SOURCE_PASSWORD - 640)) | (1L << (SOURCE_PORT - 640)) | (1L << (SOURCE_LOG_FILE - 640)) | (1L << (SOURCE_LOG_POS - 640)) | (1L << (SOURCE_AUTO_POSITION - 640)) | (1L << (SOURCE_HEARTBEAT_PERIOD - 640)))) != 0) || ((((_la - 704)) & ~0x3f) == 0 && ((1L << (_la - 704)) & ((1L << (SOURCE_CONNECT_RETRY - 704)) | (1L << (SOURCE_RETRY_COUNT - 704)) | (1L << (SOURCE_CONNECTION_AUTO_FAILOVER - 704)) | (1L << (SOURCE_DELAY - 704)) | (1L << (SOURCE_COMPRESSION_ALGORITHMS - 704)) | (1L << (SOURCE_ZSTD_COMPRESSION_LEVEL - 704)) | (1L << (SOURCE_SSL - 704)) | (1L << (SOURCE_SSL_CA - 704)) | (1L << (SOURCE_SSL_CAPATH - 704)) | (1L << (SOURCE_SSL_CERT - 704)) | (1L << (SOURCE_SSL_CRL - 704)) | (1L << (SOURCE_SSL_CRLPATH - 704)) | (1L << (SOURCE_SSL_KEY - 704)) | (1L << (SOURCE_SSL_CIPHER - 704)) | (1L << (SOURCE_SSL_VERIFY_SERVER_CERT - 704)) | (1L << (SOURCE_TLS_VERSION - 704)) | (1L << (SOURCE_TLS_CIPHERSUITES - 704)) | (1L << (SOURCE_PUBLIC_KEY_PATH - 704)) | (1L << (TABLE - 704)) | (1L << (TABLES - 704)) | (1L << (TABLESPACE - 704)) | (1L << (TABLE_CHECKSUM - 704)) | (1L << (TABLE_NAME - 704)) | (1L << (TEMPORARY - 704)) | (1L << (TEMPTABLE - 704)) | (1L << (TERMINATED - 704)) | (1L << (TEXT - 704)) | (1L << (THAN - 704)) | (1L << (THEN - 704)) | (1L << (THREAD_PRIORITY - 704)) | (1L << (TIES - 704)) | (1L << (TIME - 704)) | (1L << (TIMESTAMP - 704)) | (1L << (TIMESTAMP_ADD - 704)) | (1L << (TIMESTAMP_DIFF - 704)) | (1L << (TINYBLOB - 704)) | (1L << (TINYINT - 704)) | (1L << (TINYTEXT - 704)) | (1L << (TLS - 704)) | (1L << (TO - 704)) | (1L << (TRAILING - 704)) | (1L << (TRANSACTION - 704)) | (1L << (TRIGGER - 704)) | (1L << (TRIGGERS - 704)) | (1L << (TRUE - 704)) | (1L << (TRUNCATE - 704)) | (1L << (TYPE - 704)) | (1L << (TYPES - 704)) | (1L << (UNBOUNDED - 704)) | (1L << (UNCOMMITTED - 704)) | (1L << (UNDEFINED - 704)) | (1L << (UNDO - 704)) | (1L << (UNDOFILE - 704)) | (1L << (UNDO_BUFFER_SIZE - 704)) | (1L << (UNICODE - 704)) | (1L << (UNINSTALL - 704)) | (1L << (UNION - 704)) | (1L << (UNIQUE - 704)) | (1L << (UNKNOWN - 704)) | (1L << (UNLOCK - 704)) | (1L << (UNSIGNED - 704)) | (1L << (UNSIGNED_INT - 704)) | (1L << (UNSIGNED_INTEGER - 704)) | (1L << (UNTIL - 704)))) != 0) || ((((_la - 768)) & ~0x3f) == 0 && ((1L << (_la - 768)) & ((1L << (UPDATE - 768)) | (1L << (UPGRADE - 768)) | (1L << (USAGE - 768)) | (1L << (USE - 768)) | (1L << (USER - 768)) | (1L << (USER_RESOURCES - 768)) | (1L << (USE_FRM - 768)) | (1L << (USING - 768)) | (1L << (UTC_DATE - 768)) | (1L << (UTC_TIME - 768)) | (1L << (UTC_TIMESTAMP - 768)) | (1L << (VALIDATION - 768)) | (1L << (VALUE - 768)) | (1L << (VALUES - 768)) | (1L << (VARBINARY - 768)) | (1L << (VARCHAR - 768)) | (1L << (VARCHARACTER - 768)) | (1L << (VARIABLES - 768)) | (1L << (VARYING - 768)) | (1L << (VCPU - 768)) | (1L << (VIEW - 768)) | (1L << (VIRTUAL - 768)) | (1L << (VISIBLE - 768)) | (1L << (WAIT - 768)) | (1L << (WARNINGS - 768)) | (1L << (WEEK - 768)) | (1L << (WEIGHT_STRING - 768)) | (1L << (WHEN - 768)) | (1L << (WHERE - 768)) | (1L << (WHILE - 768)) | (1L << (WINDOW - 768)) | (1L << (WITH - 768)) | (1L << (WITHOUT - 768)) | (1L << (WORK - 768)) | (1L << (WRAPPER - 768)) | (1L << (WRITE - 768)) | (1L << (X509 - 768)) | (1L << (XA - 768)) | (1L << (XID - 768)) | (1L << (XML - 768)) | (1L << (XOR - 768)) | (1L << (YEAR - 768)) | (1L << (YEAR_MONTH - 768)) | (1L << (ZEROFILL - 768)) | (1L << (JSON_ARRAY - 768)) | (1L << (JSON_ARRAY_APPEND - 768)) | (1L << (JSON_ARRAY_INSERT - 768)) | (1L << (JSON_CONTAINS - 768)) | (1L << (JSON_CONTAINS_PATH - 768)) | (1L << (JSON_DEPTH - 768)) | (1L << (JSON_EXTRACT - 768)) | (1L << (JSON_INSERT - 768)) | (1L << (JSON_KEYS - 768)) | (1L << (JSON_LENGTH - 768)) | (1L << (JSON_MERGE - 768)) | (1L << (JSON_MERGE_PATCH - 768)) | (1L << (JSON_MERGE_PRESERVE - 768)) | (1L << (JSON_OBJECT - 768)) | (1L << (JSON_OVERLAPS - 768)) | (1L << (JSON_PRETTY - 768)) | (1L << (JSON_QUOTE - 768)) | (1L << (JSON_REMOVE - 768)) | (1L << (JSON_REPLACE - 768)) | (1L << (JSON_SCHEMA_VALID - 768)))) != 0) || ((((_la - 832)) & ~0x3f) == 0 && ((1L << (_la - 832)) & ((1L << (JSON_SCHEMA_VALIDATION_REPORT - 832)) | (1L << (JSON_SEARCH - 832)) | (1L << (JSON_SET - 832)) | (1L << (JSON_STORAGE_FREE - 832)) | (1L << (JSON_STORAGE_SIZE - 832)) | (1L << (JSON_TYPE - 832)) | (1L << (JSON_UNQUOTE - 832)) | (1L << (JSON_VALID - 832)) | (1L << (ZONE - 832)) | (1L << (FILESIZE_LITERAL - 832)) | (1L << (SINGLE_QUOTED_TEXT - 832)) | (1L << (DOUBLE_QUOTED_TEXT - 832)) | (1L << (BQUOTA_STRING - 832)) | (1L << (NCHAR_TEXT - 832)) | (1L << (UNDERSCORE_CHARSET - 832)) | (1L << (NUMBER_ - 832)) | (1L << (INT_NUM_ - 832)) | (1L << (FLOAT_NUM_ - 832)) | (1L << (DECIMAL_NUM_ - 832)) | (1L << (HEX_DIGIT_ - 832)) | (1L << (BIT_NUM_ - 832)) | (1L << (IDENTIFIER_ - 832)) | (1L << (IP_ADDRESS - 832)) | (1L << (NOT_SUPPORT_ - 832)))) != 0) );
13513 				}
13514 				break;
13515 			}
13516 		}
13517 		catch (RecognitionException re) {
13518 			_localctx.exception = re;
13519 			_errHandler.reportError(this, re);
13520 			_errHandler.recover(this, re);
13521 		}
13522 		finally {
13523 			exitRule();
13524 		}
13525 		return _localctx;
13526 	}
13527 
13528 	public static class UserIdentifierOrTextContext extends ParserRuleContext {
13529 		public List<TextOrIdentifierContext> textOrIdentifier() {
13530 			return getRuleContexts(TextOrIdentifierContext.class);
13531 		}
13532 		public TextOrIdentifierContext textOrIdentifier(int i) {
13533 			return getRuleContext(TextOrIdentifierContext.class,i);
13534 		}
13535 		public TerminalNode AT_() { return getToken(HiveStatementParser.AT_, 0); }
13536 		public UserIdentifierOrTextContext(ParserRuleContext parent, int invokingState) {
13537 			super(parent, invokingState);
13538 		}
13539 		@Override public int getRuleIndex() { return RULE_userIdentifierOrText; }
13540 		@Override
13541 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
13542 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUserIdentifierOrText(this);
13543 			else return visitor.visitChildren(this);
13544 		}
13545 	}
13546 
13547 	public final UserIdentifierOrTextContext userIdentifierOrText() throws RecognitionException {
13548 		UserIdentifierOrTextContext _localctx = new UserIdentifierOrTextContext(_ctx, getState());
13549 		enterRule(_localctx, 234, RULE_userIdentifierOrText);
13550 		try {
13551 			enterOuterAlt(_localctx, 1);
13552 			{
13553 			setState(1455);
13554 			textOrIdentifier();
13555 			setState(1458);
13556 			_errHandler.sync(this);
13557 			switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) {
13558 			case 1:
13559 				{
13560 				setState(1456);
13561 				match(AT_);
13562 				setState(1457);
13563 				textOrIdentifier();
13564 				}
13565 				break;
13566 			}
13567 			}
13568 		}
13569 		catch (RecognitionException re) {
13570 			_localctx.exception = re;
13571 			_errHandler.reportError(this, re);
13572 			_errHandler.recover(this, re);
13573 		}
13574 		finally {
13575 			exitRule();
13576 		}
13577 		return _localctx;
13578 	}
13579 
13580 	public static class UsernameContext extends ParserRuleContext {
13581 		public UserIdentifierOrTextContext userIdentifierOrText() {
13582 			return getRuleContext(UserIdentifierOrTextContext.class,0);
13583 		}
13584 		public TerminalNode CURRENT_USER() { return getToken(HiveStatementParser.CURRENT_USER, 0); }
13585 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
13586 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
13587 		public UsernameContext(ParserRuleContext parent, int invokingState) {
13588 			super(parent, invokingState);
13589 		}
13590 		@Override public int getRuleIndex() { return RULE_username; }
13591 		@Override
13592 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
13593 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUsername(this);
13594 			else return visitor.visitChildren(this);
13595 		}
13596 	}
13597 
13598 	public final UsernameContext username() throws RecognitionException {
13599 		UsernameContext _localctx = new UsernameContext(_ctx, getState());
13600 		enterRule(_localctx, 236, RULE_username);
13601 		int _la;
13602 		try {
13603 			setState(1466);
13604 			_errHandler.sync(this);
13605 			switch (_input.LA(1)) {
13606 			case MAX:
13607 			case MIN:
13608 			case SUM:
13609 			case COUNT:
13610 			case GROUP_CONCAT:
13611 			case CAST:
13612 			case POSITION:
13613 			case SUBSTRING:
13614 			case SUBSTR:
13615 			case EXTRACT:
13616 			case TRIM:
13617 			case LAST_DAY:
13618 			case TRADITIONAL:
13619 			case TREE:
13620 			case MYSQL_MAIN:
13621 			case MYSQL_ADMIN:
13622 			case INSTANT:
13623 			case INPLACE:
13624 			case COPY:
13625 			case UL_BINARY:
13626 			case AUTOCOMMIT:
13627 			case INNODB:
13628 			case REDO_LOG:
13629 			case ACCOUNT:
13630 			case ACTION:
13631 			case ACTIVE:
13632 			case ADMIN:
13633 			case AFTER:
13634 			case AGAINST:
13635 			case AGGREGATE:
13636 			case ALGORITHM:
13637 			case ALWAYS:
13638 			case ANY:
13639 			case ARRAY:
13640 			case ASCII:
13641 			case AT:
13642 			case ATTRIBUTE:
13643 			case AUTOEXTEND_SIZE:
13644 			case AUTO_INCREMENT:
13645 			case AVG:
13646 			case BIT_XOR:
13647 			case AVG_ROW_LENGTH:
13648 			case BACKUP:
13649 			case BEGIN:
13650 			case BINLOG:
13651 			case BIT:
13652 			case BLOCK:
13653 			case BOOL:
13654 			case BOOLEAN:
13655 			case BTREE:
13656 			case BUCKETS:
13657 			case BYTE:
13658 			case CACHE:
13659 			case CASCADED:
13660 			case CATALOG_NAME:
13661 			case CHAIN:
13662 			case CHANGED:
13663 			case CHANNEL:
13664 			case CHARSET:
13665 			case CHECKSUM:
13666 			case CIPHER:
13667 			case CLASS_ORIGIN:
13668 			case CLIENT:
13669 			case CLONE:
13670 			case CLOSE:
13671 			case COALESCE:
13672 			case CODE:
13673 			case COLLATION:
13674 			case COLUMNS:
13675 			case COLUMN_FORMAT:
13676 			case COLUMN_NAME:
13677 			case COMMENT:
13678 			case COMMIT:
13679 			case COMMITTED:
13680 			case COMPACT:
13681 			case COMPLETION:
13682 			case COMPONENT:
13683 			case COMPRESSED:
13684 			case COMPRESSION:
13685 			case CONCURRENT:
13686 			case CONNECTION:
13687 			case CONSISTENT:
13688 			case CONSTRAINT_CATALOG:
13689 			case CONSTRAINT_NAME:
13690 			case CONSTRAINT_SCHEMA:
13691 			case CONTAINS:
13692 			case CONTEXT:
13693 			case CPU:
13694 			case CREATE:
13695 			case CURRENT:
13696 			case CURSOR_NAME:
13697 			case DATA:
13698 			case DATAFILE:
13699 			case DATE:
13700 			case DATETIME:
13701 			case DAY:
13702 			case DAY_MINUTE:
13703 			case DEALLOCATE:
13704 			case DEFAULT_AUTH:
13705 			case DEFINER:
13706 			case DEFINITION:
13707 			case DELAY_KEY_WRITE:
13708 			case DESCRIPTION:
13709 			case DIAGNOSTICS:
13710 			case DIRECTORY:
13711 			case DISABLE:
13712 			case DISCARD:
13713 			case DISK:
13714 			case DO:
13715 			case DUMPFILE:
13716 			case DUPLICATE:
13717 			case DYNAMIC:
13718 			case ENABLE:
13719 			case ENCRYPTION:
13720 			case END:
13721 			case ENDS:
13722 			case ENFORCED:
13723 			case ENGINE:
13724 			case ENGINES:
13725 			case ENGINE_ATTRIBUTE:
13726 			case ENUM:
13727 			case ERROR:
13728 			case ERRORS:
13729 			case ESCAPE:
13730 			case EVENT:
13731 			case EVENTS:
13732 			case EVERY:
13733 			case EXCHANGE:
13734 			case EXCLUDE:
13735 			case EXECUTE:
13736 			case EXPANSION:
13737 			case EXPIRE:
13738 			case EXPORT:
13739 			case EXTENDED:
13740 			case EXTENT_SIZE:
13741 			case FAILED_LOGIN_ATTEMPTS:
13742 			case FAST:
13743 			case FAULTS:
13744 			case FILE:
13745 			case FILE_BLOCK_SIZE:
13746 			case FILTER:
13747 			case FIRST:
13748 			case FIXED:
13749 			case FLUSH:
13750 			case FOLLOWING:
13751 			case FOLLOWS:
13752 			case FORMAT:
13753 			case FOUND:
13754 			case FULL:
13755 			case GENERAL:
13756 			case GEOMETRY:
13757 			case GEOMETRYCOLLECTION:
13758 			case GET_FORMAT:
13759 			case GET_MASTER_PUBLIC_KEY:
13760 			case GLOBAL:
13761 			case GRANTS:
13762 			case GROUP_REPLICATION:
13763 			case HANDLER:
13764 			case HASH:
13765 			case HELP:
13766 			case HISTOGRAM:
13767 			case HISTORY:
13768 			case HOST:
13769 			case HOSTS:
13770 			case HOUR:
13771 			case IDENTIFIED:
13772 			case IGNORE_SERVER_IDS:
13773 			case IMPORT:
13774 			case INACTIVE:
13775 			case INDEXES:
13776 			case INITIAL_SIZE:
13777 			case INSERT_METHOD:
13778 			case INSTALL:
13779 			case INSTANCE:
13780 			case INVISIBLE:
13781 			case INVOKER:
13782 			case IO:
13783 			case IPC:
13784 			case ISOLATION:
13785 			case ISSUER:
13786 			case JSON:
13787 			case JSON_VALUE:
13788 			case KEY:
13789 			case KEY_BLOCK_SIZE:
13790 			case LANGUAGE:
13791 			case LAST:
13792 			case LAST_VALUE:
13793 			case LEAVES:
13794 			case LESS:
13795 			case LEVEL:
13796 			case LINESTRING:
13797 			case LIST:
13798 			case LOCAL:
13799 			case LOCKED:
13800 			case LOCKS:
13801 			case LOGFILE:
13802 			case LOGS:
13803 			case MASTER:
13804 			case MASTER_AUTO_POSITION:
13805 			case MASTER_COMPRESSION_ALGORITHM:
13806 			case MASTER_CONNECT_RETRY:
13807 			case MASTER_DELAY:
13808 			case MASTER_HEARTBEAT_PERIOD:
13809 			case MASTER_HOST:
13810 			case MASTER_LOG_FILE:
13811 			case MASTER_LOG_POS:
13812 			case MASTER_PASSWORD:
13813 			case MASTER_PORT:
13814 			case MASTER_PUBLIC_KEY_PATH:
13815 			case MASTER_RETRY_COUNT:
13816 			case MASTER_SERVER_ID:
13817 			case MASTER_SSL:
13818 			case MASTER_SSL_CA:
13819 			case MASTER_SSL_CAPATH:
13820 			case MASTER_SSL_CERT:
13821 			case MASTER_SSL_CIPHER:
13822 			case MASTER_SSL_CRL:
13823 			case MASTER_SSL_CRLPATH:
13824 			case MASTER_SSL_KEY:
13825 			case MASTER_TLS_CIPHERSUITES:
13826 			case MASTER_TLS_VERSION:
13827 			case MASTER_USER:
13828 			case MASTER_ZSTD_COMPRESSION_LEVEL:
13829 			case MAXVALUE:
13830 			case MAX_CONNECTIONS_PER_HOUR:
13831 			case MAX_QUERIES_PER_HOUR:
13832 			case MAX_ROWS:
13833 			case MAX_SIZE:
13834 			case MAX_UPDATES_PER_HOUR:
13835 			case MAX_USER_CONNECTIONS:
13836 			case MEDIUM:
13837 			case MEMBER:
13838 			case MEMORY:
13839 			case MERGE:
13840 			case MESSAGE_TEXT:
13841 			case MICROSECOND:
13842 			case MIGRATE:
13843 			case MINUTE:
13844 			case MIN_ROWS:
13845 			case MODE:
13846 			case MODIFY:
13847 			case MONTH:
13848 			case MULTILINESTRING:
13849 			case MULTIPOINT:
13850 			case MULTIPOLYGON:
13851 			case MUTEX:
13852 			case MYSQL_ERRNO:
13853 			case NAME:
13854 			case NAMES:
13855 			case NATIONAL:
13856 			case NCHAR:
13857 			case NDBCLUSTER:
13858 			case NESTED:
13859 			case NETWORK_NAMESPACE:
13860 			case NEVER:
13861 			case NEW:
13862 			case NEXT:
13863 			case NO:
13864 			case NODEGROUP:
13865 			case NONE:
13866 			case NOWAIT:
13867 			case NO_WAIT:
13868 			case NULLS:
13869 			case NUMBER:
13870 			case NVARCHAR:
13871 			case OFF:
13872 			case OFFSET:
13873 			case OJ:
13874 			case OLD:
13875 			case ONE:
13876 			case ONLY:
13877 			case OPEN:
13878 			case OPTIONAL:
13879 			case OPTIONS:
13880 			case ORDINALITY:
13881 			case ORGANIZATION:
13882 			case OTHERS:
13883 			case OWNER:
13884 			case PACK_KEYS:
13885 			case PAGE:
13886 			case PARSER:
13887 			case PARTIAL:
13888 			case PARTITIONING:
13889 			case PARTITIONS:
13890 			case PASSWORD:
13891 			case PASSWORD_LOCK_TIME:
13892 			case PATH:
13893 			case PERSIST:
13894 			case PERSIST_ONLY:
13895 			case PHASE:
13896 			case PLUGIN:
13897 			case PLUGINS:
13898 			case PLUGIN_DIR:
13899 			case POINT:
13900 			case POLYGON:
13901 			case PORT:
13902 			case PRECEDES:
13903 			case PRECEDING:
13904 			case PREPARE:
13905 			case PRESERVE:
13906 			case PREV:
13907 			case PRIMARY:
13908 			case PRIVILEGES:
13909 			case PRIVILEGE_CHECKS_USER:
13910 			case PROCESS:
13911 			case PROCESSLIST:
13912 			case PROFILE:
13913 			case PROFILES:
13914 			case PROXY:
13915 			case QUARTER:
13916 			case QUERY:
13917 			case QUICK:
13918 			case RANDOM:
13919 			case READ_ONLY:
13920 			case REBUILD:
13921 			case RECOVER:
13922 			case REDO_BUFFER_SIZE:
13923 			case REDUNDANT:
13924 			case REFERENCE:
13925 			case RELAY:
13926 			case RELAYLOG:
13927 			case RELAY_LOG_FILE:
13928 			case RELAY_LOG_POS:
13929 			case RELAY_THREAD:
13930 			case RELOAD:
13931 			case REMOVE:
13932 			case REORGANIZE:
13933 			case REPAIR:
13934 			case REPEATABLE:
13935 			case REPLICATE_DO_DB:
13936 			case REPLICATE_DO_TABLE:
13937 			case REPLICATE_IGNORE_DB:
13938 			case REPLICATE_IGNORE_TABLE:
13939 			case REPLICATE_REWRITE_DB:
13940 			case REPLICATE_WILD_DO_TABLE:
13941 			case REPLICATE_WILD_IGNORE_TABLE:
13942 			case REPLICATION:
13943 			case REQUIRE_ROW_FORMAT:
13944 			case RESET:
13945 			case RESOURCE:
13946 			case RESPECT:
13947 			case RESTART:
13948 			case RESTORE:
13949 			case RESUME:
13950 			case RETAIN:
13951 			case RETURNED_SQLSTATE:
13952 			case RETURNING:
13953 			case RETURNS:
13954 			case REUSE:
13955 			case REVERSE:
13956 			case ROLE:
13957 			case ROLLBACK:
13958 			case ROLLUP:
13959 			case ROTATE:
13960 			case ROUTINE:
13961 			case ROW_COUNT:
13962 			case ROW_FORMAT:
13963 			case RTREE:
13964 			case SAVEPOINT:
13965 			case SCHEDULE:
13966 			case SCHEMA_NAME:
13967 			case SECOND:
13968 			case SECONDARY:
13969 			case SECONDARY_ENGINE:
13970 			case SECONDARY_ENGINE_ATTRIBUTE:
13971 			case SECONDARY_LOAD:
13972 			case SECONDARY_UNLOAD:
13973 			case SECURITY:
13974 			case SERIAL:
13975 			case SERIALIZABLE:
13976 			case SERVER:
13977 			case SESSION:
13978 			case SHARE:
13979 			case SHUTDOWN:
13980 			case SIGNED:
13981 			case SIMPLE:
13982 			case SLAVE:
13983 			case SLOW:
13984 			case SNAPSHOT:
13985 			case SOCKET:
13986 			case SONAME:
13987 			case SOUNDS:
13988 			case SOURCE:
13989 			case SQL_AFTER_GTIDS:
13990 			case SQL_AFTER_MTS_GAPS:
13991 			case SQL_BEFORE_GTIDS:
13992 			case SQL_BUFFER_RESULT:
13993 			case SQL_NO_CACHE:
13994 			case SQL_THREAD:
13995 			case SRID:
13996 			case STACKED:
13997 			case START:
13998 			case STARTS:
13999 			case STATS_AUTO_RECALC:
14000 			case STATS_PERSISTENT:
14001 			case STATS_SAMPLE_PAGES:
14002 			case STATUS:
14003 			case STOP:
14004 			case STORAGE:
14005 			case STREAM:
14006 			case STRING:
14007 			case SUBCLASS_ORIGIN:
14008 			case SUBJECT:
14009 			case SUBPARTITION:
14010 			case SUBPARTITIONS:
14011 			case SUPER:
14012 			case SUSPEND:
14013 			case SWAPS:
14014 			case SWITCHES:
14015 			case SYSTEM:
14016 			case TABLE:
14017 			case TABLES:
14018 			case TABLESPACE:
14019 			case TABLE_CHECKSUM:
14020 			case TABLE_NAME:
14021 			case TEMPORARY:
14022 			case TEMPTABLE:
14023 			case TEXT:
14024 			case THAN:
14025 			case THREAD_PRIORITY:
14026 			case TIES:
14027 			case TIME:
14028 			case TIMESTAMP:
14029 			case TIMESTAMP_ADD:
14030 			case TIMESTAMP_DIFF:
14031 			case TLS:
14032 			case TRANSACTION:
14033 			case TRIGGERS:
14034 			case TRUNCATE:
14035 			case TYPE:
14036 			case TYPES:
14037 			case UNBOUNDED:
14038 			case UNCOMMITTED:
14039 			case UNDEFINED:
14040 			case UNDOFILE:
14041 			case UNDO_BUFFER_SIZE:
14042 			case UNICODE:
14043 			case UNINSTALL:
14044 			case UNKNOWN:
14045 			case UNTIL:
14046 			case UPGRADE:
14047 			case USER:
14048 			case USER_RESOURCES:
14049 			case USE_FRM:
14050 			case UTC_DATE:
14051 			case UTC_TIME:
14052 			case UTC_TIMESTAMP:
14053 			case VALIDATION:
14054 			case VALUE:
14055 			case VARIABLES:
14056 			case VCPU:
14057 			case VIEW:
14058 			case VISIBLE:
14059 			case WAIT:
14060 			case WARNINGS:
14061 			case WEEK:
14062 			case WEIGHT_STRING:
14063 			case WITHOUT:
14064 			case WORK:
14065 			case WRAPPER:
14066 			case X509:
14067 			case XA:
14068 			case XID:
14069 			case XML:
14070 			case YEAR:
14071 			case YEAR_MONTH:
14072 			case SINGLE_QUOTED_TEXT:
14073 			case DOUBLE_QUOTED_TEXT:
14074 			case BQUOTA_STRING:
14075 			case UNDERSCORE_CHARSET:
14076 			case IDENTIFIER_:
14077 			case IP_ADDRESS:
14078 				enterOuterAlt(_localctx, 1);
14079 				{
14080 				setState(1460);
14081 				userIdentifierOrText();
14082 				}
14083 				break;
14084 			case CURRENT_USER:
14085 				enterOuterAlt(_localctx, 2);
14086 				{
14087 				setState(1461);
14088 				match(CURRENT_USER);
14089 				setState(1464);
14090 				_errHandler.sync(this);
14091 				_la = _input.LA(1);
14092 				if (_la==LP_) {
14093 					{
14094 					setState(1462);
14095 					match(LP_);
14096 					setState(1463);
14097 					match(RP_);
14098 					}
14099 				}
14100 
14101 				}
14102 				break;
14103 			default:
14104 				throw new NoViableAltException(this);
14105 			}
14106 		}
14107 		catch (RecognitionException re) {
14108 			_localctx.exception = re;
14109 			_errHandler.reportError(this, re);
14110 			_errHandler.recover(this, re);
14111 		}
14112 		finally {
14113 			exitRule();
14114 		}
14115 		return _localctx;
14116 	}
14117 
14118 	public static class EventNameContext extends ParserRuleContext {
14119 		public IdentifierContext identifier() {
14120 			return getRuleContext(IdentifierContext.class,0);
14121 		}
14122 		public OwnerContext owner() {
14123 			return getRuleContext(OwnerContext.class,0);
14124 		}
14125 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
14126 		public EventNameContext(ParserRuleContext parent, int invokingState) {
14127 			super(parent, invokingState);
14128 		}
14129 		@Override public int getRuleIndex() { return RULE_eventName; }
14130 		@Override
14131 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14132 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitEventName(this);
14133 			else return visitor.visitChildren(this);
14134 		}
14135 	}
14136 
14137 	public final EventNameContext eventName() throws RecognitionException {
14138 		EventNameContext _localctx = new EventNameContext(_ctx, getState());
14139 		enterRule(_localctx, 238, RULE_eventName);
14140 		try {
14141 			enterOuterAlt(_localctx, 1);
14142 			{
14143 			setState(1471);
14144 			_errHandler.sync(this);
14145 			switch ( getInterpreter().adaptivePredict(_input,165,_ctx) ) {
14146 			case 1:
14147 				{
14148 				setState(1468);
14149 				owner();
14150 				setState(1469);
14151 				match(DOT_);
14152 				}
14153 				break;
14154 			}
14155 			setState(1473);
14156 			identifier();
14157 			}
14158 		}
14159 		catch (RecognitionException re) {
14160 			_localctx.exception = re;
14161 			_errHandler.reportError(this, re);
14162 			_errHandler.recover(this, re);
14163 		}
14164 		finally {
14165 			exitRule();
14166 		}
14167 		return _localctx;
14168 	}
14169 
14170 	public static class ServerNameContext extends ParserRuleContext {
14171 		public TextOrIdentifierContext textOrIdentifier() {
14172 			return getRuleContext(TextOrIdentifierContext.class,0);
14173 		}
14174 		public ServerNameContext(ParserRuleContext parent, int invokingState) {
14175 			super(parent, invokingState);
14176 		}
14177 		@Override public int getRuleIndex() { return RULE_serverName; }
14178 		@Override
14179 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14180 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitServerName(this);
14181 			else return visitor.visitChildren(this);
14182 		}
14183 	}
14184 
14185 	public final ServerNameContext serverName() throws RecognitionException {
14186 		ServerNameContext _localctx = new ServerNameContext(_ctx, getState());
14187 		enterRule(_localctx, 240, RULE_serverName);
14188 		try {
14189 			enterOuterAlt(_localctx, 1);
14190 			{
14191 			setState(1475);
14192 			textOrIdentifier();
14193 			}
14194 		}
14195 		catch (RecognitionException re) {
14196 			_localctx.exception = re;
14197 			_errHandler.reportError(this, re);
14198 			_errHandler.recover(this, re);
14199 		}
14200 		finally {
14201 			exitRule();
14202 		}
14203 		return _localctx;
14204 	}
14205 
14206 	public static class WrapperNameContext extends ParserRuleContext {
14207 		public TextOrIdentifierContext textOrIdentifier() {
14208 			return getRuleContext(TextOrIdentifierContext.class,0);
14209 		}
14210 		public WrapperNameContext(ParserRuleContext parent, int invokingState) {
14211 			super(parent, invokingState);
14212 		}
14213 		@Override public int getRuleIndex() { return RULE_wrapperName; }
14214 		@Override
14215 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14216 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWrapperName(this);
14217 			else return visitor.visitChildren(this);
14218 		}
14219 	}
14220 
14221 	public final WrapperNameContext wrapperName() throws RecognitionException {
14222 		WrapperNameContext _localctx = new WrapperNameContext(_ctx, getState());
14223 		enterRule(_localctx, 242, RULE_wrapperName);
14224 		try {
14225 			enterOuterAlt(_localctx, 1);
14226 			{
14227 			setState(1477);
14228 			textOrIdentifier();
14229 			}
14230 		}
14231 		catch (RecognitionException re) {
14232 			_localctx.exception = re;
14233 			_errHandler.reportError(this, re);
14234 			_errHandler.recover(this, re);
14235 		}
14236 		finally {
14237 			exitRule();
14238 		}
14239 		return _localctx;
14240 	}
14241 
14242 	public static class FunctionNameContext extends ParserRuleContext {
14243 		public IdentifierContext identifier() {
14244 			return getRuleContext(IdentifierContext.class,0);
14245 		}
14246 		public OwnerContext owner() {
14247 			return getRuleContext(OwnerContext.class,0);
14248 		}
14249 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
14250 		public FunctionNameContext(ParserRuleContext parent, int invokingState) {
14251 			super(parent, invokingState);
14252 		}
14253 		@Override public int getRuleIndex() { return RULE_functionName; }
14254 		@Override
14255 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14256 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFunctionName(this);
14257 			else return visitor.visitChildren(this);
14258 		}
14259 	}
14260 
14261 	public final FunctionNameContext functionName() throws RecognitionException {
14262 		FunctionNameContext _localctx = new FunctionNameContext(_ctx, getState());
14263 		enterRule(_localctx, 244, RULE_functionName);
14264 		try {
14265 			enterOuterAlt(_localctx, 1);
14266 			{
14267 			setState(1482);
14268 			_errHandler.sync(this);
14269 			switch ( getInterpreter().adaptivePredict(_input,166,_ctx) ) {
14270 			case 1:
14271 				{
14272 				setState(1479);
14273 				owner();
14274 				setState(1480);
14275 				match(DOT_);
14276 				}
14277 				break;
14278 			}
14279 			setState(1484);
14280 			identifier();
14281 			}
14282 		}
14283 		catch (RecognitionException re) {
14284 			_localctx.exception = re;
14285 			_errHandler.reportError(this, re);
14286 			_errHandler.recover(this, re);
14287 		}
14288 		finally {
14289 			exitRule();
14290 		}
14291 		return _localctx;
14292 	}
14293 
14294 	public static class ProcedureNameContext extends ParserRuleContext {
14295 		public IdentifierContext identifier() {
14296 			return getRuleContext(IdentifierContext.class,0);
14297 		}
14298 		public OwnerContext owner() {
14299 			return getRuleContext(OwnerContext.class,0);
14300 		}
14301 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
14302 		public ProcedureNameContext(ParserRuleContext parent, int invokingState) {
14303 			super(parent, invokingState);
14304 		}
14305 		@Override public int getRuleIndex() { return RULE_procedureName; }
14306 		@Override
14307 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14308 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitProcedureName(this);
14309 			else return visitor.visitChildren(this);
14310 		}
14311 	}
14312 
14313 	public final ProcedureNameContext procedureName() throws RecognitionException {
14314 		ProcedureNameContext _localctx = new ProcedureNameContext(_ctx, getState());
14315 		enterRule(_localctx, 246, RULE_procedureName);
14316 		try {
14317 			enterOuterAlt(_localctx, 1);
14318 			{
14319 			setState(1489);
14320 			_errHandler.sync(this);
14321 			switch ( getInterpreter().adaptivePredict(_input,167,_ctx) ) {
14322 			case 1:
14323 				{
14324 				setState(1486);
14325 				owner();
14326 				setState(1487);
14327 				match(DOT_);
14328 				}
14329 				break;
14330 			}
14331 			setState(1491);
14332 			identifier();
14333 			}
14334 		}
14335 		catch (RecognitionException re) {
14336 			_localctx.exception = re;
14337 			_errHandler.reportError(this, re);
14338 			_errHandler.recover(this, re);
14339 		}
14340 		finally {
14341 			exitRule();
14342 		}
14343 		return _localctx;
14344 	}
14345 
14346 	public static class ViewNameContext extends ParserRuleContext {
14347 		public IdentifierContext identifier() {
14348 			return getRuleContext(IdentifierContext.class,0);
14349 		}
14350 		public OwnerContext owner() {
14351 			return getRuleContext(OwnerContext.class,0);
14352 		}
14353 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
14354 		public ViewNameContext(ParserRuleContext parent, int invokingState) {
14355 			super(parent, invokingState);
14356 		}
14357 		@Override public int getRuleIndex() { return RULE_viewName; }
14358 		@Override
14359 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14360 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitViewName(this);
14361 			else return visitor.visitChildren(this);
14362 		}
14363 	}
14364 
14365 	public final ViewNameContext viewName() throws RecognitionException {
14366 		ViewNameContext _localctx = new ViewNameContext(_ctx, getState());
14367 		enterRule(_localctx, 248, RULE_viewName);
14368 		try {
14369 			enterOuterAlt(_localctx, 1);
14370 			{
14371 			setState(1496);
14372 			_errHandler.sync(this);
14373 			switch ( getInterpreter().adaptivePredict(_input,168,_ctx) ) {
14374 			case 1:
14375 				{
14376 				setState(1493);
14377 				owner();
14378 				setState(1494);
14379 				match(DOT_);
14380 				}
14381 				break;
14382 			}
14383 			setState(1498);
14384 			identifier();
14385 			}
14386 		}
14387 		catch (RecognitionException re) {
14388 			_localctx.exception = re;
14389 			_errHandler.reportError(this, re);
14390 			_errHandler.recover(this, re);
14391 		}
14392 		finally {
14393 			exitRule();
14394 		}
14395 		return _localctx;
14396 	}
14397 
14398 	public static class OwnerContext extends ParserRuleContext {
14399 		public IdentifierContext identifier() {
14400 			return getRuleContext(IdentifierContext.class,0);
14401 		}
14402 		public OwnerContext(ParserRuleContext parent, int invokingState) {
14403 			super(parent, invokingState);
14404 		}
14405 		@Override public int getRuleIndex() { return RULE_owner; }
14406 		@Override
14407 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14408 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOwner(this);
14409 			else return visitor.visitChildren(this);
14410 		}
14411 	}
14412 
14413 	public final OwnerContext owner() throws RecognitionException {
14414 		OwnerContext _localctx = new OwnerContext(_ctx, getState());
14415 		enterRule(_localctx, 250, RULE_owner);
14416 		try {
14417 			enterOuterAlt(_localctx, 1);
14418 			{
14419 			setState(1500);
14420 			identifier();
14421 			}
14422 		}
14423 		catch (RecognitionException re) {
14424 			_localctx.exception = re;
14425 			_errHandler.reportError(this, re);
14426 			_errHandler.recover(this, re);
14427 		}
14428 		finally {
14429 			exitRule();
14430 		}
14431 		return _localctx;
14432 	}
14433 
14434 	public static class AliasContext extends ParserRuleContext {
14435 		public TextOrIdentifierContext textOrIdentifier() {
14436 			return getRuleContext(TextOrIdentifierContext.class,0);
14437 		}
14438 		public AliasContext(ParserRuleContext parent, int invokingState) {
14439 			super(parent, invokingState);
14440 		}
14441 		@Override public int getRuleIndex() { return RULE_alias; }
14442 		@Override
14443 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14444 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAlias(this);
14445 			else return visitor.visitChildren(this);
14446 		}
14447 	}
14448 
14449 	public final AliasContext alias() throws RecognitionException {
14450 		AliasContext _localctx = new AliasContext(_ctx, getState());
14451 		enterRule(_localctx, 252, RULE_alias);
14452 		try {
14453 			enterOuterAlt(_localctx, 1);
14454 			{
14455 			setState(1502);
14456 			textOrIdentifier();
14457 			}
14458 		}
14459 		catch (RecognitionException re) {
14460 			_localctx.exception = re;
14461 			_errHandler.reportError(this, re);
14462 			_errHandler.recover(this, re);
14463 		}
14464 		finally {
14465 			exitRule();
14466 		}
14467 		return _localctx;
14468 	}
14469 
14470 	public static class NameContext extends ParserRuleContext {
14471 		public IdentifierContext identifier() {
14472 			return getRuleContext(IdentifierContext.class,0);
14473 		}
14474 		public NameContext(ParserRuleContext parent, int invokingState) {
14475 			super(parent, invokingState);
14476 		}
14477 		@Override public int getRuleIndex() { return RULE_name; }
14478 		@Override
14479 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14480 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitName(this);
14481 			else return visitor.visitChildren(this);
14482 		}
14483 	}
14484 
14485 	public final NameContext name() throws RecognitionException {
14486 		NameContext _localctx = new NameContext(_ctx, getState());
14487 		enterRule(_localctx, 254, RULE_name);
14488 		try {
14489 			enterOuterAlt(_localctx, 1);
14490 			{
14491 			setState(1504);
14492 			identifier();
14493 			}
14494 		}
14495 		catch (RecognitionException re) {
14496 			_localctx.exception = re;
14497 			_errHandler.reportError(this, re);
14498 			_errHandler.recover(this, re);
14499 		}
14500 		finally {
14501 			exitRule();
14502 		}
14503 		return _localctx;
14504 	}
14505 
14506 	public static class TableListContext extends ParserRuleContext {
14507 		public List<TableNameContext> tableName() {
14508 			return getRuleContexts(TableNameContext.class);
14509 		}
14510 		public TableNameContext tableName(int i) {
14511 			return getRuleContext(TableNameContext.class,i);
14512 		}
14513 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
14514 		public TerminalNode COMMA_(int i) {
14515 			return getToken(HiveStatementParser.COMMA_, i);
14516 		}
14517 		public TableListContext(ParserRuleContext parent, int invokingState) {
14518 			super(parent, invokingState);
14519 		}
14520 		@Override public int getRuleIndex() { return RULE_tableList; }
14521 		@Override
14522 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14523 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableList(this);
14524 			else return visitor.visitChildren(this);
14525 		}
14526 	}
14527 
14528 	public final TableListContext tableList() throws RecognitionException {
14529 		TableListContext _localctx = new TableListContext(_ctx, getState());
14530 		enterRule(_localctx, 256, RULE_tableList);
14531 		int _la;
14532 		try {
14533 			enterOuterAlt(_localctx, 1);
14534 			{
14535 			setState(1506);
14536 			tableName();
14537 			setState(1511);
14538 			_errHandler.sync(this);
14539 			_la = _input.LA(1);
14540 			while (_la==COMMA_) {
14541 				{
14542 				{
14543 				setState(1507);
14544 				match(COMMA_);
14545 				setState(1508);
14546 				tableName();
14547 				}
14548 				}
14549 				setState(1513);
14550 				_errHandler.sync(this);
14551 				_la = _input.LA(1);
14552 			}
14553 			}
14554 		}
14555 		catch (RecognitionException re) {
14556 			_localctx.exception = re;
14557 			_errHandler.reportError(this, re);
14558 			_errHandler.recover(this, re);
14559 		}
14560 		finally {
14561 			exitRule();
14562 		}
14563 		return _localctx;
14564 	}
14565 
14566 	public static class ViewNamesContext extends ParserRuleContext {
14567 		public List<ViewNameContext> viewName() {
14568 			return getRuleContexts(ViewNameContext.class);
14569 		}
14570 		public ViewNameContext viewName(int i) {
14571 			return getRuleContext(ViewNameContext.class,i);
14572 		}
14573 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
14574 		public TerminalNode COMMA_(int i) {
14575 			return getToken(HiveStatementParser.COMMA_, i);
14576 		}
14577 		public ViewNamesContext(ParserRuleContext parent, int invokingState) {
14578 			super(parent, invokingState);
14579 		}
14580 		@Override public int getRuleIndex() { return RULE_viewNames; }
14581 		@Override
14582 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14583 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitViewNames(this);
14584 			else return visitor.visitChildren(this);
14585 		}
14586 	}
14587 
14588 	public final ViewNamesContext viewNames() throws RecognitionException {
14589 		ViewNamesContext _localctx = new ViewNamesContext(_ctx, getState());
14590 		enterRule(_localctx, 258, RULE_viewNames);
14591 		int _la;
14592 		try {
14593 			enterOuterAlt(_localctx, 1);
14594 			{
14595 			setState(1514);
14596 			viewName();
14597 			setState(1519);
14598 			_errHandler.sync(this);
14599 			_la = _input.LA(1);
14600 			while (_la==COMMA_) {
14601 				{
14602 				{
14603 				setState(1515);
14604 				match(COMMA_);
14605 				setState(1516);
14606 				viewName();
14607 				}
14608 				}
14609 				setState(1521);
14610 				_errHandler.sync(this);
14611 				_la = _input.LA(1);
14612 			}
14613 			}
14614 		}
14615 		catch (RecognitionException re) {
14616 			_localctx.exception = re;
14617 			_errHandler.reportError(this, re);
14618 			_errHandler.recover(this, re);
14619 		}
14620 		finally {
14621 			exitRule();
14622 		}
14623 		return _localctx;
14624 	}
14625 
14626 	public static class ColumnNamesContext extends ParserRuleContext {
14627 		public List<ColumnNameContext> columnName() {
14628 			return getRuleContexts(ColumnNameContext.class);
14629 		}
14630 		public ColumnNameContext columnName(int i) {
14631 			return getRuleContext(ColumnNameContext.class,i);
14632 		}
14633 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
14634 		public TerminalNode COMMA_(int i) {
14635 			return getToken(HiveStatementParser.COMMA_, i);
14636 		}
14637 		public ColumnNamesContext(ParserRuleContext parent, int invokingState) {
14638 			super(parent, invokingState);
14639 		}
14640 		@Override public int getRuleIndex() { return RULE_columnNames; }
14641 		@Override
14642 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14643 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitColumnNames(this);
14644 			else return visitor.visitChildren(this);
14645 		}
14646 	}
14647 
14648 	public final ColumnNamesContext columnNames() throws RecognitionException {
14649 		ColumnNamesContext _localctx = new ColumnNamesContext(_ctx, getState());
14650 		enterRule(_localctx, 260, RULE_columnNames);
14651 		int _la;
14652 		try {
14653 			enterOuterAlt(_localctx, 1);
14654 			{
14655 			setState(1522);
14656 			columnName();
14657 			setState(1527);
14658 			_errHandler.sync(this);
14659 			_la = _input.LA(1);
14660 			while (_la==COMMA_) {
14661 				{
14662 				{
14663 				setState(1523);
14664 				match(COMMA_);
14665 				setState(1524);
14666 				columnName();
14667 				}
14668 				}
14669 				setState(1529);
14670 				_errHandler.sync(this);
14671 				_la = _input.LA(1);
14672 			}
14673 			}
14674 		}
14675 		catch (RecognitionException re) {
14676 			_localctx.exception = re;
14677 			_errHandler.reportError(this, re);
14678 			_errHandler.recover(this, re);
14679 		}
14680 		finally {
14681 			exitRule();
14682 		}
14683 		return _localctx;
14684 	}
14685 
14686 	public static class GroupNameContext extends ParserRuleContext {
14687 		public IdentifierContext identifier() {
14688 			return getRuleContext(IdentifierContext.class,0);
14689 		}
14690 		public GroupNameContext(ParserRuleContext parent, int invokingState) {
14691 			super(parent, invokingState);
14692 		}
14693 		@Override public int getRuleIndex() { return RULE_groupName; }
14694 		@Override
14695 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14696 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitGroupName(this);
14697 			else return visitor.visitChildren(this);
14698 		}
14699 	}
14700 
14701 	public final GroupNameContext groupName() throws RecognitionException {
14702 		GroupNameContext _localctx = new GroupNameContext(_ctx, getState());
14703 		enterRule(_localctx, 262, RULE_groupName);
14704 		try {
14705 			enterOuterAlt(_localctx, 1);
14706 			{
14707 			setState(1530);
14708 			identifier();
14709 			}
14710 		}
14711 		catch (RecognitionException re) {
14712 			_localctx.exception = re;
14713 			_errHandler.reportError(this, re);
14714 			_errHandler.recover(this, re);
14715 		}
14716 		finally {
14717 			exitRule();
14718 		}
14719 		return _localctx;
14720 	}
14721 
14722 	public static class RoutineNameContext extends ParserRuleContext {
14723 		public IdentifierContext identifier() {
14724 			return getRuleContext(IdentifierContext.class,0);
14725 		}
14726 		public RoutineNameContext(ParserRuleContext parent, int invokingState) {
14727 			super(parent, invokingState);
14728 		}
14729 		@Override public int getRuleIndex() { return RULE_routineName; }
14730 		@Override
14731 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14732 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRoutineName(this);
14733 			else return visitor.visitChildren(this);
14734 		}
14735 	}
14736 
14737 	public final RoutineNameContext routineName() throws RecognitionException {
14738 		RoutineNameContext _localctx = new RoutineNameContext(_ctx, getState());
14739 		enterRule(_localctx, 264, RULE_routineName);
14740 		try {
14741 			enterOuterAlt(_localctx, 1);
14742 			{
14743 			setState(1532);
14744 			identifier();
14745 			}
14746 		}
14747 		catch (RecognitionException re) {
14748 			_localctx.exception = re;
14749 			_errHandler.reportError(this, re);
14750 			_errHandler.recover(this, re);
14751 		}
14752 		finally {
14753 			exitRule();
14754 		}
14755 		return _localctx;
14756 	}
14757 
14758 	public static class ShardLibraryNameContext extends ParserRuleContext {
14759 		public StringLiteralsContext stringLiterals() {
14760 			return getRuleContext(StringLiteralsContext.class,0);
14761 		}
14762 		public ShardLibraryNameContext(ParserRuleContext parent, int invokingState) {
14763 			super(parent, invokingState);
14764 		}
14765 		@Override public int getRuleIndex() { return RULE_shardLibraryName; }
14766 		@Override
14767 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14768 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitShardLibraryName(this);
14769 			else return visitor.visitChildren(this);
14770 		}
14771 	}
14772 
14773 	public final ShardLibraryNameContext shardLibraryName() throws RecognitionException {
14774 		ShardLibraryNameContext _localctx = new ShardLibraryNameContext(_ctx, getState());
14775 		enterRule(_localctx, 266, RULE_shardLibraryName);
14776 		try {
14777 			enterOuterAlt(_localctx, 1);
14778 			{
14779 			setState(1534);
14780 			stringLiterals();
14781 			}
14782 		}
14783 		catch (RecognitionException re) {
14784 			_localctx.exception = re;
14785 			_errHandler.reportError(this, re);
14786 			_errHandler.recover(this, re);
14787 		}
14788 		finally {
14789 			exitRule();
14790 		}
14791 		return _localctx;
14792 	}
14793 
14794 	public static class ComponentNameContext extends ParserRuleContext {
14795 		public String_Context string_() {
14796 			return getRuleContext(String_Context.class,0);
14797 		}
14798 		public ComponentNameContext(ParserRuleContext parent, int invokingState) {
14799 			super(parent, invokingState);
14800 		}
14801 		@Override public int getRuleIndex() { return RULE_componentName; }
14802 		@Override
14803 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14804 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitComponentName(this);
14805 			else return visitor.visitChildren(this);
14806 		}
14807 	}
14808 
14809 	public final ComponentNameContext componentName() throws RecognitionException {
14810 		ComponentNameContext _localctx = new ComponentNameContext(_ctx, getState());
14811 		enterRule(_localctx, 268, RULE_componentName);
14812 		try {
14813 			enterOuterAlt(_localctx, 1);
14814 			{
14815 			setState(1536);
14816 			string_();
14817 			}
14818 		}
14819 		catch (RecognitionException re) {
14820 			_localctx.exception = re;
14821 			_errHandler.reportError(this, re);
14822 			_errHandler.recover(this, re);
14823 		}
14824 		finally {
14825 			exitRule();
14826 		}
14827 		return _localctx;
14828 	}
14829 
14830 	public static class PluginNameContext extends ParserRuleContext {
14831 		public TextOrIdentifierContext textOrIdentifier() {
14832 			return getRuleContext(TextOrIdentifierContext.class,0);
14833 		}
14834 		public PluginNameContext(ParserRuleContext parent, int invokingState) {
14835 			super(parent, invokingState);
14836 		}
14837 		@Override public int getRuleIndex() { return RULE_pluginName; }
14838 		@Override
14839 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14840 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPluginName(this);
14841 			else return visitor.visitChildren(this);
14842 		}
14843 	}
14844 
14845 	public final PluginNameContext pluginName() throws RecognitionException {
14846 		PluginNameContext _localctx = new PluginNameContext(_ctx, getState());
14847 		enterRule(_localctx, 270, RULE_pluginName);
14848 		try {
14849 			enterOuterAlt(_localctx, 1);
14850 			{
14851 			setState(1538);
14852 			textOrIdentifier();
14853 			}
14854 		}
14855 		catch (RecognitionException re) {
14856 			_localctx.exception = re;
14857 			_errHandler.reportError(this, re);
14858 			_errHandler.recover(this, re);
14859 		}
14860 		finally {
14861 			exitRule();
14862 		}
14863 		return _localctx;
14864 	}
14865 
14866 	public static class HostnameContext extends ParserRuleContext {
14867 		public String_Context string_() {
14868 			return getRuleContext(String_Context.class,0);
14869 		}
14870 		public HostnameContext(ParserRuleContext parent, int invokingState) {
14871 			super(parent, invokingState);
14872 		}
14873 		@Override public int getRuleIndex() { return RULE_hostname; }
14874 		@Override
14875 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14876 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitHostname(this);
14877 			else return visitor.visitChildren(this);
14878 		}
14879 	}
14880 
14881 	public final HostnameContext hostname() throws RecognitionException {
14882 		HostnameContext _localctx = new HostnameContext(_ctx, getState());
14883 		enterRule(_localctx, 272, RULE_hostname);
14884 		try {
14885 			enterOuterAlt(_localctx, 1);
14886 			{
14887 			setState(1540);
14888 			string_();
14889 			}
14890 		}
14891 		catch (RecognitionException re) {
14892 			_localctx.exception = re;
14893 			_errHandler.reportError(this, re);
14894 			_errHandler.recover(this, re);
14895 		}
14896 		finally {
14897 			exitRule();
14898 		}
14899 		return _localctx;
14900 	}
14901 
14902 	public static class PortContext extends ParserRuleContext {
14903 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
14904 		public PortContext(ParserRuleContext parent, int invokingState) {
14905 			super(parent, invokingState);
14906 		}
14907 		@Override public int getRuleIndex() { return RULE_port; }
14908 		@Override
14909 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14910 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPort(this);
14911 			else return visitor.visitChildren(this);
14912 		}
14913 	}
14914 
14915 	public final PortContext port() throws RecognitionException {
14916 		PortContext _localctx = new PortContext(_ctx, getState());
14917 		enterRule(_localctx, 274, RULE_port);
14918 		try {
14919 			enterOuterAlt(_localctx, 1);
14920 			{
14921 			setState(1542);
14922 			match(NUMBER_);
14923 			}
14924 		}
14925 		catch (RecognitionException re) {
14926 			_localctx.exception = re;
14927 			_errHandler.reportError(this, re);
14928 			_errHandler.recover(this, re);
14929 		}
14930 		finally {
14931 			exitRule();
14932 		}
14933 		return _localctx;
14934 	}
14935 
14936 	public static class CloneInstanceContext extends ParserRuleContext {
14937 		public UsernameContext username() {
14938 			return getRuleContext(UsernameContext.class,0);
14939 		}
14940 		public TerminalNode AT_() { return getToken(HiveStatementParser.AT_, 0); }
14941 		public HostnameContext hostname() {
14942 			return getRuleContext(HostnameContext.class,0);
14943 		}
14944 		public TerminalNode COLON_() { return getToken(HiveStatementParser.COLON_, 0); }
14945 		public PortContext port() {
14946 			return getRuleContext(PortContext.class,0);
14947 		}
14948 		public CloneInstanceContext(ParserRuleContext parent, int invokingState) {
14949 			super(parent, invokingState);
14950 		}
14951 		@Override public int getRuleIndex() { return RULE_cloneInstance; }
14952 		@Override
14953 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14954 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCloneInstance(this);
14955 			else return visitor.visitChildren(this);
14956 		}
14957 	}
14958 
14959 	public final CloneInstanceContext cloneInstance() throws RecognitionException {
14960 		CloneInstanceContext _localctx = new CloneInstanceContext(_ctx, getState());
14961 		enterRule(_localctx, 276, RULE_cloneInstance);
14962 		try {
14963 			enterOuterAlt(_localctx, 1);
14964 			{
14965 			setState(1544);
14966 			username();
14967 			setState(1545);
14968 			match(AT_);
14969 			setState(1546);
14970 			hostname();
14971 			setState(1547);
14972 			match(COLON_);
14973 			setState(1548);
14974 			port();
14975 			}
14976 		}
14977 		catch (RecognitionException re) {
14978 			_localctx.exception = re;
14979 			_errHandler.reportError(this, re);
14980 			_errHandler.recover(this, re);
14981 		}
14982 		finally {
14983 			exitRule();
14984 		}
14985 		return _localctx;
14986 	}
14987 
14988 	public static class CloneDirContext extends ParserRuleContext {
14989 		public String_Context string_() {
14990 			return getRuleContext(String_Context.class,0);
14991 		}
14992 		public CloneDirContext(ParserRuleContext parent, int invokingState) {
14993 			super(parent, invokingState);
14994 		}
14995 		@Override public int getRuleIndex() { return RULE_cloneDir; }
14996 		@Override
14997 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
14998 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCloneDir(this);
14999 			else return visitor.visitChildren(this);
15000 		}
15001 	}
15002 
15003 	public final CloneDirContext cloneDir() throws RecognitionException {
15004 		CloneDirContext _localctx = new CloneDirContext(_ctx, getState());
15005 		enterRule(_localctx, 278, RULE_cloneDir);
15006 		try {
15007 			enterOuterAlt(_localctx, 1);
15008 			{
15009 			setState(1550);
15010 			string_();
15011 			}
15012 		}
15013 		catch (RecognitionException re) {
15014 			_localctx.exception = re;
15015 			_errHandler.reportError(this, re);
15016 			_errHandler.recover(this, re);
15017 		}
15018 		finally {
15019 			exitRule();
15020 		}
15021 		return _localctx;
15022 	}
15023 
15024 	public static class ChannelNameContext extends ParserRuleContext {
15025 		public List<IdentifierContext> identifier() {
15026 			return getRuleContexts(IdentifierContext.class);
15027 		}
15028 		public IdentifierContext identifier(int i) {
15029 			return getRuleContext(IdentifierContext.class,i);
15030 		}
15031 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
15032 		public ChannelNameContext(ParserRuleContext parent, int invokingState) {
15033 			super(parent, invokingState);
15034 		}
15035 		@Override public int getRuleIndex() { return RULE_channelName; }
15036 		@Override
15037 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15038 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitChannelName(this);
15039 			else return visitor.visitChildren(this);
15040 		}
15041 	}
15042 
15043 	public final ChannelNameContext channelName() throws RecognitionException {
15044 		ChannelNameContext _localctx = new ChannelNameContext(_ctx, getState());
15045 		enterRule(_localctx, 280, RULE_channelName);
15046 		int _la;
15047 		try {
15048 			enterOuterAlt(_localctx, 1);
15049 			{
15050 			setState(1552);
15051 			identifier();
15052 			setState(1555);
15053 			_errHandler.sync(this);
15054 			_la = _input.LA(1);
15055 			if (_la==DOT_) {
15056 				{
15057 				setState(1553);
15058 				match(DOT_);
15059 				setState(1554);
15060 				identifier();
15061 				}
15062 			}
15063 
15064 			}
15065 		}
15066 		catch (RecognitionException re) {
15067 			_localctx.exception = re;
15068 			_errHandler.reportError(this, re);
15069 			_errHandler.recover(this, re);
15070 		}
15071 		finally {
15072 			exitRule();
15073 		}
15074 		return _localctx;
15075 	}
15076 
15077 	public static class LogNameContext extends ParserRuleContext {
15078 		public StringLiteralsContext stringLiterals() {
15079 			return getRuleContext(StringLiteralsContext.class,0);
15080 		}
15081 		public LogNameContext(ParserRuleContext parent, int invokingState) {
15082 			super(parent, invokingState);
15083 		}
15084 		@Override public int getRuleIndex() { return RULE_logName; }
15085 		@Override
15086 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15087 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLogName(this);
15088 			else return visitor.visitChildren(this);
15089 		}
15090 	}
15091 
15092 	public final LogNameContext logName() throws RecognitionException {
15093 		LogNameContext _localctx = new LogNameContext(_ctx, getState());
15094 		enterRule(_localctx, 282, RULE_logName);
15095 		try {
15096 			enterOuterAlt(_localctx, 1);
15097 			{
15098 			setState(1557);
15099 			stringLiterals();
15100 			}
15101 		}
15102 		catch (RecognitionException re) {
15103 			_localctx.exception = re;
15104 			_errHandler.reportError(this, re);
15105 			_errHandler.recover(this, re);
15106 		}
15107 		finally {
15108 			exitRule();
15109 		}
15110 		return _localctx;
15111 	}
15112 
15113 	public static class RoleNameContext extends ParserRuleContext {
15114 		public RoleIdentifierOrTextContext roleIdentifierOrText() {
15115 			return getRuleContext(RoleIdentifierOrTextContext.class,0);
15116 		}
15117 		public TerminalNode AT_() { return getToken(HiveStatementParser.AT_, 0); }
15118 		public TextOrIdentifierContext textOrIdentifier() {
15119 			return getRuleContext(TextOrIdentifierContext.class,0);
15120 		}
15121 		public RoleNameContext(ParserRuleContext parent, int invokingState) {
15122 			super(parent, invokingState);
15123 		}
15124 		@Override public int getRuleIndex() { return RULE_roleName; }
15125 		@Override
15126 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15127 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRoleName(this);
15128 			else return visitor.visitChildren(this);
15129 		}
15130 	}
15131 
15132 	public final RoleNameContext roleName() throws RecognitionException {
15133 		RoleNameContext _localctx = new RoleNameContext(_ctx, getState());
15134 		enterRule(_localctx, 284, RULE_roleName);
15135 		int _la;
15136 		try {
15137 			enterOuterAlt(_localctx, 1);
15138 			{
15139 			setState(1559);
15140 			roleIdentifierOrText();
15141 			setState(1562);
15142 			_errHandler.sync(this);
15143 			_la = _input.LA(1);
15144 			if (_la==AT_) {
15145 				{
15146 				setState(1560);
15147 				match(AT_);
15148 				setState(1561);
15149 				textOrIdentifier();
15150 				}
15151 			}
15152 
15153 			}
15154 		}
15155 		catch (RecognitionException re) {
15156 			_localctx.exception = re;
15157 			_errHandler.reportError(this, re);
15158 			_errHandler.recover(this, re);
15159 		}
15160 		finally {
15161 			exitRule();
15162 		}
15163 		return _localctx;
15164 	}
15165 
15166 	public static class RoleIdentifierOrTextContext extends ParserRuleContext {
15167 		public IdentifierContext identifier() {
15168 			return getRuleContext(IdentifierContext.class,0);
15169 		}
15170 		public String_Context string_() {
15171 			return getRuleContext(String_Context.class,0);
15172 		}
15173 		public RoleIdentifierOrTextContext(ParserRuleContext parent, int invokingState) {
15174 			super(parent, invokingState);
15175 		}
15176 		@Override public int getRuleIndex() { return RULE_roleIdentifierOrText; }
15177 		@Override
15178 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15179 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRoleIdentifierOrText(this);
15180 			else return visitor.visitChildren(this);
15181 		}
15182 	}
15183 
15184 	public final RoleIdentifierOrTextContext roleIdentifierOrText() throws RecognitionException {
15185 		RoleIdentifierOrTextContext _localctx = new RoleIdentifierOrTextContext(_ctx, getState());
15186 		enterRule(_localctx, 286, RULE_roleIdentifierOrText);
15187 		try {
15188 			setState(1566);
15189 			_errHandler.sync(this);
15190 			switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) {
15191 			case 1:
15192 				enterOuterAlt(_localctx, 1);
15193 				{
15194 				setState(1564);
15195 				identifier();
15196 				}
15197 				break;
15198 			case 2:
15199 				enterOuterAlt(_localctx, 2);
15200 				{
15201 				setState(1565);
15202 				string_();
15203 				}
15204 				break;
15205 			}
15206 		}
15207 		catch (RecognitionException re) {
15208 			_localctx.exception = re;
15209 			_errHandler.reportError(this, re);
15210 			_errHandler.recover(this, re);
15211 		}
15212 		finally {
15213 			exitRule();
15214 		}
15215 		return _localctx;
15216 	}
15217 
15218 	public static class EngineRefContext extends ParserRuleContext {
15219 		public TextOrIdentifierContext textOrIdentifier() {
15220 			return getRuleContext(TextOrIdentifierContext.class,0);
15221 		}
15222 		public EngineRefContext(ParserRuleContext parent, int invokingState) {
15223 			super(parent, invokingState);
15224 		}
15225 		@Override public int getRuleIndex() { return RULE_engineRef; }
15226 		@Override
15227 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15228 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitEngineRef(this);
15229 			else return visitor.visitChildren(this);
15230 		}
15231 	}
15232 
15233 	public final EngineRefContext engineRef() throws RecognitionException {
15234 		EngineRefContext _localctx = new EngineRefContext(_ctx, getState());
15235 		enterRule(_localctx, 288, RULE_engineRef);
15236 		try {
15237 			enterOuterAlt(_localctx, 1);
15238 			{
15239 			setState(1568);
15240 			textOrIdentifier();
15241 			}
15242 		}
15243 		catch (RecognitionException re) {
15244 			_localctx.exception = re;
15245 			_errHandler.reportError(this, re);
15246 			_errHandler.recover(this, re);
15247 		}
15248 		finally {
15249 			exitRule();
15250 		}
15251 		return _localctx;
15252 	}
15253 
15254 	public static class TriggerNameContext extends ParserRuleContext {
15255 		public List<IdentifierContext> identifier() {
15256 			return getRuleContexts(IdentifierContext.class);
15257 		}
15258 		public IdentifierContext identifier(int i) {
15259 			return getRuleContext(IdentifierContext.class,i);
15260 		}
15261 		public TerminalNode DOT_() { return getToken(HiveStatementParser.DOT_, 0); }
15262 		public TriggerNameContext(ParserRuleContext parent, int invokingState) {
15263 			super(parent, invokingState);
15264 		}
15265 		@Override public int getRuleIndex() { return RULE_triggerName; }
15266 		@Override
15267 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15268 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTriggerName(this);
15269 			else return visitor.visitChildren(this);
15270 		}
15271 	}
15272 
15273 	public final TriggerNameContext triggerName() throws RecognitionException {
15274 		TriggerNameContext _localctx = new TriggerNameContext(_ctx, getState());
15275 		enterRule(_localctx, 290, RULE_triggerName);
15276 		int _la;
15277 		try {
15278 			enterOuterAlt(_localctx, 1);
15279 			{
15280 			setState(1570);
15281 			identifier();
15282 			setState(1573);
15283 			_errHandler.sync(this);
15284 			_la = _input.LA(1);
15285 			if (_la==DOT_) {
15286 				{
15287 				setState(1571);
15288 				match(DOT_);
15289 				setState(1572);
15290 				identifier();
15291 				}
15292 			}
15293 
15294 			}
15295 		}
15296 		catch (RecognitionException re) {
15297 			_localctx.exception = re;
15298 			_errHandler.reportError(this, re);
15299 			_errHandler.recover(this, re);
15300 		}
15301 		finally {
15302 			exitRule();
15303 		}
15304 		return _localctx;
15305 	}
15306 
15307 	public static class TriggerTimeContext extends ParserRuleContext {
15308 		public TerminalNode BEFORE() { return getToken(HiveStatementParser.BEFORE, 0); }
15309 		public TerminalNode AFTER() { return getToken(HiveStatementParser.AFTER, 0); }
15310 		public TriggerTimeContext(ParserRuleContext parent, int invokingState) {
15311 			super(parent, invokingState);
15312 		}
15313 		@Override public int getRuleIndex() { return RULE_triggerTime; }
15314 		@Override
15315 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15316 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTriggerTime(this);
15317 			else return visitor.visitChildren(this);
15318 		}
15319 	}
15320 
15321 	public final TriggerTimeContext triggerTime() throws RecognitionException {
15322 		TriggerTimeContext _localctx = new TriggerTimeContext(_ctx, getState());
15323 		enterRule(_localctx, 292, RULE_triggerTime);
15324 		int _la;
15325 		try {
15326 			enterOuterAlt(_localctx, 1);
15327 			{
15328 			setState(1575);
15329 			_la = _input.LA(1);
15330 			if ( !(_la==AFTER || _la==BEFORE) ) {
15331 			_errHandler.recoverInline(this);
15332 			}
15333 			else {
15334 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
15335 				_errHandler.reportMatch(this);
15336 				consume();
15337 			}
15338 			}
15339 		}
15340 		catch (RecognitionException re) {
15341 			_localctx.exception = re;
15342 			_errHandler.reportError(this, re);
15343 			_errHandler.recover(this, re);
15344 		}
15345 		finally {
15346 			exitRule();
15347 		}
15348 		return _localctx;
15349 	}
15350 
15351 	public static class TableOrTablesContext extends ParserRuleContext {
15352 		public TerminalNode TABLE() { return getToken(HiveStatementParser.TABLE, 0); }
15353 		public TerminalNode TABLES() { return getToken(HiveStatementParser.TABLES, 0); }
15354 		public TableOrTablesContext(ParserRuleContext parent, int invokingState) {
15355 			super(parent, invokingState);
15356 		}
15357 		@Override public int getRuleIndex() { return RULE_tableOrTables; }
15358 		@Override
15359 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15360 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTableOrTables(this);
15361 			else return visitor.visitChildren(this);
15362 		}
15363 	}
15364 
15365 	public final TableOrTablesContext tableOrTables() throws RecognitionException {
15366 		TableOrTablesContext _localctx = new TableOrTablesContext(_ctx, getState());
15367 		enterRule(_localctx, 294, RULE_tableOrTables);
15368 		int _la;
15369 		try {
15370 			enterOuterAlt(_localctx, 1);
15371 			{
15372 			setState(1577);
15373 			_la = _input.LA(1);
15374 			if ( !(_la==TABLE || _la==TABLES) ) {
15375 			_errHandler.recoverInline(this);
15376 			}
15377 			else {
15378 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
15379 				_errHandler.reportMatch(this);
15380 				consume();
15381 			}
15382 			}
15383 		}
15384 		catch (RecognitionException re) {
15385 			_localctx.exception = re;
15386 			_errHandler.reportError(this, re);
15387 			_errHandler.recover(this, re);
15388 		}
15389 		finally {
15390 			exitRule();
15391 		}
15392 		return _localctx;
15393 	}
15394 
15395 	public static class UserOrRoleContext extends ParserRuleContext {
15396 		public UsernameContext username() {
15397 			return getRuleContext(UsernameContext.class,0);
15398 		}
15399 		public RoleNameContext roleName() {
15400 			return getRuleContext(RoleNameContext.class,0);
15401 		}
15402 		public UserOrRoleContext(ParserRuleContext parent, int invokingState) {
15403 			super(parent, invokingState);
15404 		}
15405 		@Override public int getRuleIndex() { return RULE_userOrRole; }
15406 		@Override
15407 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15408 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUserOrRole(this);
15409 			else return visitor.visitChildren(this);
15410 		}
15411 	}
15412 
15413 	public final UserOrRoleContext userOrRole() throws RecognitionException {
15414 		UserOrRoleContext _localctx = new UserOrRoleContext(_ctx, getState());
15415 		enterRule(_localctx, 296, RULE_userOrRole);
15416 		try {
15417 			setState(1581);
15418 			_errHandler.sync(this);
15419 			switch ( getInterpreter().adaptivePredict(_input,176,_ctx) ) {
15420 			case 1:
15421 				enterOuterAlt(_localctx, 1);
15422 				{
15423 				setState(1579);
15424 				username();
15425 				}
15426 				break;
15427 			case 2:
15428 				enterOuterAlt(_localctx, 2);
15429 				{
15430 				setState(1580);
15431 				roleName();
15432 				}
15433 				break;
15434 			}
15435 		}
15436 		catch (RecognitionException re) {
15437 			_localctx.exception = re;
15438 			_errHandler.reportError(this, re);
15439 			_errHandler.recover(this, re);
15440 		}
15441 		finally {
15442 			exitRule();
15443 		}
15444 		return _localctx;
15445 	}
15446 
15447 	public static class PartitionNameContext extends ParserRuleContext {
15448 		public IdentifierContext identifier() {
15449 			return getRuleContext(IdentifierContext.class,0);
15450 		}
15451 		public PartitionNameContext(ParserRuleContext parent, int invokingState) {
15452 			super(parent, invokingState);
15453 		}
15454 		@Override public int getRuleIndex() { return RULE_partitionName; }
15455 		@Override
15456 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15457 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPartitionName(this);
15458 			else return visitor.visitChildren(this);
15459 		}
15460 	}
15461 
15462 	public final PartitionNameContext partitionName() throws RecognitionException {
15463 		PartitionNameContext _localctx = new PartitionNameContext(_ctx, getState());
15464 		enterRule(_localctx, 298, RULE_partitionName);
15465 		try {
15466 			enterOuterAlt(_localctx, 1);
15467 			{
15468 			setState(1583);
15469 			identifier();
15470 			}
15471 		}
15472 		catch (RecognitionException re) {
15473 			_localctx.exception = re;
15474 			_errHandler.reportError(this, re);
15475 			_errHandler.recover(this, re);
15476 		}
15477 		finally {
15478 			exitRule();
15479 		}
15480 		return _localctx;
15481 	}
15482 
15483 	public static class IdentifierListContext extends ParserRuleContext {
15484 		public List<IdentifierContext> identifier() {
15485 			return getRuleContexts(IdentifierContext.class);
15486 		}
15487 		public IdentifierContext identifier(int i) {
15488 			return getRuleContext(IdentifierContext.class,i);
15489 		}
15490 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
15491 		public TerminalNode COMMA_(int i) {
15492 			return getToken(HiveStatementParser.COMMA_, i);
15493 		}
15494 		public IdentifierListContext(ParserRuleContext parent, int invokingState) {
15495 			super(parent, invokingState);
15496 		}
15497 		@Override public int getRuleIndex() { return RULE_identifierList; }
15498 		@Override
15499 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15500 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIdentifierList(this);
15501 			else return visitor.visitChildren(this);
15502 		}
15503 	}
15504 
15505 	public final IdentifierListContext identifierList() throws RecognitionException {
15506 		IdentifierListContext _localctx = new IdentifierListContext(_ctx, getState());
15507 		enterRule(_localctx, 300, RULE_identifierList);
15508 		int _la;
15509 		try {
15510 			enterOuterAlt(_localctx, 1);
15511 			{
15512 			setState(1585);
15513 			identifier();
15514 			setState(1590);
15515 			_errHandler.sync(this);
15516 			_la = _input.LA(1);
15517 			while (_la==COMMA_) {
15518 				{
15519 				{
15520 				setState(1586);
15521 				match(COMMA_);
15522 				setState(1587);
15523 				identifier();
15524 				}
15525 				}
15526 				setState(1592);
15527 				_errHandler.sync(this);
15528 				_la = _input.LA(1);
15529 			}
15530 			}
15531 		}
15532 		catch (RecognitionException re) {
15533 			_localctx.exception = re;
15534 			_errHandler.reportError(this, re);
15535 			_errHandler.recover(this, re);
15536 		}
15537 		finally {
15538 			exitRule();
15539 		}
15540 		return _localctx;
15541 	}
15542 
15543 	public static class AllOrPartitionNameListContext extends ParserRuleContext {
15544 		public TerminalNode ALL() { return getToken(HiveStatementParser.ALL, 0); }
15545 		public IdentifierListContext identifierList() {
15546 			return getRuleContext(IdentifierListContext.class,0);
15547 		}
15548 		public AllOrPartitionNameListContext(ParserRuleContext parent, int invokingState) {
15549 			super(parent, invokingState);
15550 		}
15551 		@Override public int getRuleIndex() { return RULE_allOrPartitionNameList; }
15552 		@Override
15553 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
15554 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAllOrPartitionNameList(this);
15555 			else return visitor.visitChildren(this);
15556 		}
15557 	}
15558 
15559 	public final AllOrPartitionNameListContext allOrPartitionNameList() throws RecognitionException {
15560 		AllOrPartitionNameListContext _localctx = new AllOrPartitionNameListContext(_ctx, getState());
15561 		enterRule(_localctx, 302, RULE_allOrPartitionNameList);
15562 		try {
15563 			setState(1595);
15564 			_errHandler.sync(this);
15565 			switch (_input.LA(1)) {
15566 			case ALL:
15567 				enterOuterAlt(_localctx, 1);
15568 				{
15569 				setState(1593);
15570 				match(ALL);
15571 				}
15572 				break;
15573 			case MAX:
15574 			case MIN:
15575 			case SUM:
15576 			case COUNT:
15577 			case GROUP_CONCAT:
15578 			case CAST:
15579 			case POSITION:
15580 			case SUBSTRING:
15581 			case SUBSTR:
15582 			case EXTRACT:
15583 			case TRIM:
15584 			case LAST_DAY:
15585 			case TRADITIONAL:
15586 			case TREE:
15587 			case MYSQL_MAIN:
15588 			case MYSQL_ADMIN:
15589 			case INSTANT:
15590 			case INPLACE:
15591 			case COPY:
15592 			case UL_BINARY:
15593 			case AUTOCOMMIT:
15594 			case INNODB:
15595 			case REDO_LOG:
15596 			case ACCOUNT:
15597 			case ACTION:
15598 			case ACTIVE:
15599 			case ADMIN:
15600 			case AFTER:
15601 			case AGAINST:
15602 			case AGGREGATE:
15603 			case ALGORITHM:
15604 			case ALWAYS:
15605 			case ANY:
15606 			case ARRAY:
15607 			case ASCII:
15608 			case AT:
15609 			case ATTRIBUTE:
15610 			case AUTOEXTEND_SIZE:
15611 			case AUTO_INCREMENT:
15612 			case AVG:
15613 			case BIT_XOR:
15614 			case AVG_ROW_LENGTH:
15615 			case BACKUP:
15616 			case BEGIN:
15617 			case BINLOG:
15618 			case BIT:
15619 			case BLOCK:
15620 			case BOOL:
15621 			case BOOLEAN:
15622 			case BTREE:
15623 			case BUCKETS:
15624 			case BYTE:
15625 			case CACHE:
15626 			case CASCADED:
15627 			case CATALOG_NAME:
15628 			case CHAIN:
15629 			case CHANGED:
15630 			case CHANNEL:
15631 			case CHARSET:
15632 			case CHECKSUM:
15633 			case CIPHER:
15634 			case CLASS_ORIGIN:
15635 			case CLIENT:
15636 			case CLONE:
15637 			case CLOSE:
15638 			case COALESCE:
15639 			case CODE:
15640 			case COLLATION:
15641 			case COLUMNS:
15642 			case COLUMN_FORMAT:
15643 			case COLUMN_NAME:
15644 			case COMMENT:
15645 			case COMMIT:
15646 			case COMMITTED:
15647 			case COMPACT:
15648 			case COMPLETION:
15649 			case COMPONENT:
15650 			case COMPRESSED:
15651 			case COMPRESSION:
15652 			case CONCURRENT:
15653 			case CONNECTION:
15654 			case CONSISTENT:
15655 			case CONSTRAINT_CATALOG:
15656 			case CONSTRAINT_NAME:
15657 			case CONSTRAINT_SCHEMA:
15658 			case CONTAINS:
15659 			case CONTEXT:
15660 			case CPU:
15661 			case CREATE:
15662 			case CURRENT:
15663 			case CURSOR_NAME:
15664 			case DATA:
15665 			case DATAFILE:
15666 			case DATE:
15667 			case DATETIME:
15668 			case DAY:
15669 			case DAY_MINUTE:
15670 			case DEALLOCATE:
15671 			case DEFAULT_AUTH:
15672 			case DEFINER:
15673 			case DEFINITION:
15674 			case DELAY_KEY_WRITE:
15675 			case DESCRIPTION:
15676 			case DIAGNOSTICS:
15677 			case DIRECTORY:
15678 			case DISABLE:
15679 			case DISCARD:
15680 			case DISK:
15681 			case DO:
15682 			case DUMPFILE:
15683 			case DUPLICATE:
15684 			case DYNAMIC:
15685 			case ENABLE:
15686 			case ENCRYPTION:
15687 			case END:
15688 			case ENDS:
15689 			case ENFORCED:
15690 			case ENGINE:
15691 			case ENGINES:
15692 			case ENGINE_ATTRIBUTE:
15693 			case ENUM:
15694 			case ERROR:
15695 			case ERRORS:
15696 			case ESCAPE:
15697 			case EVENT:
15698 			case EVENTS:
15699 			case EVERY:
15700 			case EXCHANGE:
15701 			case EXCLUDE:
15702 			case EXECUTE:
15703 			case EXPANSION:
15704 			case EXPIRE:
15705 			case EXPORT:
15706 			case EXTENDED:
15707 			case EXTENT_SIZE:
15708 			case FAILED_LOGIN_ATTEMPTS:
15709 			case FAST:
15710 			case FAULTS:
15711 			case FILE:
15712 			case FILE_BLOCK_SIZE:
15713 			case FILTER:
15714 			case FIRST:
15715 			case FIXED:
15716 			case FLUSH:
15717 			case FOLLOWING:
15718 			case FOLLOWS:
15719 			case FORMAT:
15720 			case FOUND:
15721 			case FULL:
15722 			case GENERAL:
15723 			case GEOMETRY:
15724 			case GEOMETRYCOLLECTION:
15725 			case GET_FORMAT:
15726 			case GET_MASTER_PUBLIC_KEY:
15727 			case GLOBAL:
15728 			case GRANTS:
15729 			case GROUP_REPLICATION:
15730 			case HANDLER:
15731 			case HASH:
15732 			case HELP:
15733 			case HISTOGRAM:
15734 			case HISTORY:
15735 			case HOST:
15736 			case HOSTS:
15737 			case HOUR:
15738 			case IDENTIFIED:
15739 			case IGNORE_SERVER_IDS:
15740 			case IMPORT:
15741 			case INACTIVE:
15742 			case INDEXES:
15743 			case INITIAL_SIZE:
15744 			case INSERT_METHOD:
15745 			case INSTALL:
15746 			case INSTANCE:
15747 			case INVISIBLE:
15748 			case INVOKER:
15749 			case IO:
15750 			case IPC:
15751 			case ISOLATION:
15752 			case ISSUER:
15753 			case JSON:
15754 			case JSON_VALUE:
15755 			case KEY:
15756 			case KEY_BLOCK_SIZE:
15757 			case LANGUAGE:
15758 			case LAST:
15759 			case LAST_VALUE:
15760 			case LEAVES:
15761 			case LESS:
15762 			case LEVEL:
15763 			case LINESTRING:
15764 			case LIST:
15765 			case LOCAL:
15766 			case LOCKED:
15767 			case LOCKS:
15768 			case LOGFILE:
15769 			case LOGS:
15770 			case MASTER:
15771 			case MASTER_AUTO_POSITION:
15772 			case MASTER_COMPRESSION_ALGORITHM:
15773 			case MASTER_CONNECT_RETRY:
15774 			case MASTER_DELAY:
15775 			case MASTER_HEARTBEAT_PERIOD:
15776 			case MASTER_HOST:
15777 			case MASTER_LOG_FILE:
15778 			case MASTER_LOG_POS:
15779 			case MASTER_PASSWORD:
15780 			case MASTER_PORT:
15781 			case MASTER_PUBLIC_KEY_PATH:
15782 			case MASTER_RETRY_COUNT:
15783 			case MASTER_SERVER_ID:
15784 			case MASTER_SSL:
15785 			case MASTER_SSL_CA:
15786 			case MASTER_SSL_CAPATH:
15787 			case MASTER_SSL_CERT:
15788 			case MASTER_SSL_CIPHER:
15789 			case MASTER_SSL_CRL:
15790 			case MASTER_SSL_CRLPATH:
15791 			case MASTER_SSL_KEY:
15792 			case MASTER_TLS_CIPHERSUITES:
15793 			case MASTER_TLS_VERSION:
15794 			case MASTER_USER:
15795 			case MASTER_ZSTD_COMPRESSION_LEVEL:
15796 			case MAXVALUE:
15797 			case MAX_CONNECTIONS_PER_HOUR:
15798 			case MAX_QUERIES_PER_HOUR:
15799 			case MAX_ROWS:
15800 			case MAX_SIZE:
15801 			case MAX_UPDATES_PER_HOUR:
15802 			case MAX_USER_CONNECTIONS:
15803 			case MEDIUM:
15804 			case MEMBER:
15805 			case MEMORY:
15806 			case MERGE:
15807 			case MESSAGE_TEXT:
15808 			case MICROSECOND:
15809 			case MIGRATE:
15810 			case MINUTE:
15811 			case MIN_ROWS:
15812 			case MODE:
15813 			case MODIFY:
15814 			case MONTH:
15815 			case MULTILINESTRING:
15816 			case MULTIPOINT:
15817 			case MULTIPOLYGON:
15818 			case MUTEX:
15819 			case MYSQL_ERRNO:
15820 			case NAME:
15821 			case NAMES:
15822 			case NATIONAL:
15823 			case NCHAR:
15824 			case NDBCLUSTER:
15825 			case NESTED:
15826 			case NETWORK_NAMESPACE:
15827 			case NEVER:
15828 			case NEW:
15829 			case NEXT:
15830 			case NO:
15831 			case NODEGROUP:
15832 			case NONE:
15833 			case NOWAIT:
15834 			case NO_WAIT:
15835 			case NULLS:
15836 			case NUMBER:
15837 			case NVARCHAR:
15838 			case OFF:
15839 			case OFFSET:
15840 			case OJ:
15841 			case OLD:
15842 			case ONE:
15843 			case ONLY:
15844 			case OPEN:
15845 			case OPTIONAL:
15846 			case OPTIONS:
15847 			case ORDINALITY:
15848 			case ORGANIZATION:
15849 			case OTHERS:
15850 			case OWNER:
15851 			case PACK_KEYS:
15852 			case PAGE:
15853 			case PARSER:
15854 			case PARTIAL:
15855 			case PARTITIONING:
15856 			case PARTITIONS:
15857 			case PASSWORD:
15858 			case PASSWORD_LOCK_TIME:
15859 			case PATH:
15860 			case PERSIST:
15861 			case PERSIST_ONLY:
15862 			case PHASE:
15863 			case PLUGIN:
15864 			case PLUGINS:
15865 			case PLUGIN_DIR:
15866 			case POINT:
15867 			case POLYGON:
15868 			case PORT:
15869 			case PRECEDES:
15870 			case PRECEDING:
15871 			case PREPARE:
15872 			case PRESERVE:
15873 			case PREV:
15874 			case PRIMARY:
15875 			case PRIVILEGES:
15876 			case PRIVILEGE_CHECKS_USER:
15877 			case PROCESS:
15878 			case PROCESSLIST:
15879 			case PROFILE:
15880 			case PROFILES:
15881 			case PROXY:
15882 			case QUARTER:
15883 			case QUERY:
15884 			case QUICK:
15885 			case RANDOM:
15886 			case READ_ONLY:
15887 			case REBUILD:
15888 			case RECOVER:
15889 			case REDO_BUFFER_SIZE:
15890 			case REDUNDANT:
15891 			case REFERENCE:
15892 			case RELAY:
15893 			case RELAYLOG:
15894 			case RELAY_LOG_FILE:
15895 			case RELAY_LOG_POS:
15896 			case RELAY_THREAD:
15897 			case RELOAD:
15898 			case REMOVE:
15899 			case REORGANIZE:
15900 			case REPAIR:
15901 			case REPEATABLE:
15902 			case REPLICATE_DO_DB:
15903 			case REPLICATE_DO_TABLE:
15904 			case REPLICATE_IGNORE_DB:
15905 			case REPLICATE_IGNORE_TABLE:
15906 			case REPLICATE_REWRITE_DB:
15907 			case REPLICATE_WILD_DO_TABLE:
15908 			case REPLICATE_WILD_IGNORE_TABLE:
15909 			case REPLICATION:
15910 			case REQUIRE_ROW_FORMAT:
15911 			case RESET:
15912 			case RESOURCE:
15913 			case RESPECT:
15914 			case RESTART:
15915 			case RESTORE:
15916 			case RESUME:
15917 			case RETAIN:
15918 			case RETURNED_SQLSTATE:
15919 			case RETURNING:
15920 			case RETURNS:
15921 			case REUSE:
15922 			case REVERSE:
15923 			case ROLE:
15924 			case ROLLBACK:
15925 			case ROLLUP:
15926 			case ROTATE:
15927 			case ROUTINE:
15928 			case ROW_COUNT:
15929 			case ROW_FORMAT:
15930 			case RTREE:
15931 			case SAVEPOINT:
15932 			case SCHEDULE:
15933 			case SCHEMA_NAME:
15934 			case SECOND:
15935 			case SECONDARY:
15936 			case SECONDARY_ENGINE:
15937 			case SECONDARY_ENGINE_ATTRIBUTE:
15938 			case SECONDARY_LOAD:
15939 			case SECONDARY_UNLOAD:
15940 			case SECURITY:
15941 			case SERIAL:
15942 			case SERIALIZABLE:
15943 			case SERVER:
15944 			case SESSION:
15945 			case SHARE:
15946 			case SHUTDOWN:
15947 			case SIGNED:
15948 			case SIMPLE:
15949 			case SLAVE:
15950 			case SLOW:
15951 			case SNAPSHOT:
15952 			case SOCKET:
15953 			case SONAME:
15954 			case SOUNDS:
15955 			case SOURCE:
15956 			case SQL_AFTER_GTIDS:
15957 			case SQL_AFTER_MTS_GAPS:
15958 			case SQL_BEFORE_GTIDS:
15959 			case SQL_BUFFER_RESULT:
15960 			case SQL_NO_CACHE:
15961 			case SQL_THREAD:
15962 			case SRID:
15963 			case STACKED:
15964 			case START:
15965 			case STARTS:
15966 			case STATS_AUTO_RECALC:
15967 			case STATS_PERSISTENT:
15968 			case STATS_SAMPLE_PAGES:
15969 			case STATUS:
15970 			case STOP:
15971 			case STORAGE:
15972 			case STREAM:
15973 			case STRING:
15974 			case SUBCLASS_ORIGIN:
15975 			case SUBJECT:
15976 			case SUBPARTITION:
15977 			case SUBPARTITIONS:
15978 			case SUPER:
15979 			case SUSPEND:
15980 			case SWAPS:
15981 			case SWITCHES:
15982 			case SYSTEM:
15983 			case TABLE:
15984 			case TABLES:
15985 			case TABLESPACE:
15986 			case TABLE_CHECKSUM:
15987 			case TABLE_NAME:
15988 			case TEMPORARY:
15989 			case TEMPTABLE:
15990 			case TEXT:
15991 			case THAN:
15992 			case THREAD_PRIORITY:
15993 			case TIES:
15994 			case TIME:
15995 			case TIMESTAMP:
15996 			case TIMESTAMP_ADD:
15997 			case TIMESTAMP_DIFF:
15998 			case TLS:
15999 			case TRANSACTION:
16000 			case TRIGGERS:
16001 			case TRUNCATE:
16002 			case TYPE:
16003 			case TYPES:
16004 			case UNBOUNDED:
16005 			case UNCOMMITTED:
16006 			case UNDEFINED:
16007 			case UNDOFILE:
16008 			case UNDO_BUFFER_SIZE:
16009 			case UNICODE:
16010 			case UNINSTALL:
16011 			case UNKNOWN:
16012 			case UNTIL:
16013 			case UPGRADE:
16014 			case USER:
16015 			case USER_RESOURCES:
16016 			case USE_FRM:
16017 			case UTC_DATE:
16018 			case UTC_TIME:
16019 			case UTC_TIMESTAMP:
16020 			case VALIDATION:
16021 			case VALUE:
16022 			case VARIABLES:
16023 			case VCPU:
16024 			case VIEW:
16025 			case VISIBLE:
16026 			case WAIT:
16027 			case WARNINGS:
16028 			case WEEK:
16029 			case WEIGHT_STRING:
16030 			case WITHOUT:
16031 			case WORK:
16032 			case WRAPPER:
16033 			case X509:
16034 			case XA:
16035 			case XID:
16036 			case XML:
16037 			case YEAR:
16038 			case YEAR_MONTH:
16039 			case DOUBLE_QUOTED_TEXT:
16040 			case BQUOTA_STRING:
16041 			case UNDERSCORE_CHARSET:
16042 			case IDENTIFIER_:
16043 				enterOuterAlt(_localctx, 2);
16044 				{
16045 				setState(1594);
16046 				identifierList();
16047 				}
16048 				break;
16049 			default:
16050 				throw new NoViableAltException(this);
16051 			}
16052 		}
16053 		catch (RecognitionException re) {
16054 			_localctx.exception = re;
16055 			_errHandler.reportError(this, re);
16056 			_errHandler.recover(this, re);
16057 		}
16058 		finally {
16059 			exitRule();
16060 		}
16061 		return _localctx;
16062 	}
16063 
16064 	public static class TriggerEventContext extends ParserRuleContext {
16065 		public TerminalNode INSERT() { return getToken(HiveStatementParser.INSERT, 0); }
16066 		public TerminalNode UPDATE() { return getToken(HiveStatementParser.UPDATE, 0); }
16067 		public TerminalNode DELETE() { return getToken(HiveStatementParser.DELETE, 0); }
16068 		public TriggerEventContext(ParserRuleContext parent, int invokingState) {
16069 			super(parent, invokingState);
16070 		}
16071 		@Override public int getRuleIndex() { return RULE_triggerEvent; }
16072 		@Override
16073 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16074 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTriggerEvent(this);
16075 			else return visitor.visitChildren(this);
16076 		}
16077 	}
16078 
16079 	public final TriggerEventContext triggerEvent() throws RecognitionException {
16080 		TriggerEventContext _localctx = new TriggerEventContext(_ctx, getState());
16081 		enterRule(_localctx, 304, RULE_triggerEvent);
16082 		int _la;
16083 		try {
16084 			enterOuterAlt(_localctx, 1);
16085 			{
16086 			setState(1597);
16087 			_la = _input.LA(1);
16088 			if ( !(_la==DELETE || _la==INSERT || _la==UPDATE) ) {
16089 			_errHandler.recoverInline(this);
16090 			}
16091 			else {
16092 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16093 				_errHandler.reportMatch(this);
16094 				consume();
16095 			}
16096 			}
16097 		}
16098 		catch (RecognitionException re) {
16099 			_localctx.exception = re;
16100 			_errHandler.reportError(this, re);
16101 			_errHandler.recover(this, re);
16102 		}
16103 		finally {
16104 			exitRule();
16105 		}
16106 		return _localctx;
16107 	}
16108 
16109 	public static class TriggerOrderContext extends ParserRuleContext {
16110 		public TriggerNameContext triggerName() {
16111 			return getRuleContext(TriggerNameContext.class,0);
16112 		}
16113 		public TerminalNode FOLLOWS() { return getToken(HiveStatementParser.FOLLOWS, 0); }
16114 		public TerminalNode PRECEDES() { return getToken(HiveStatementParser.PRECEDES, 0); }
16115 		public TriggerOrderContext(ParserRuleContext parent, int invokingState) {
16116 			super(parent, invokingState);
16117 		}
16118 		@Override public int getRuleIndex() { return RULE_triggerOrder; }
16119 		@Override
16120 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16121 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTriggerOrder(this);
16122 			else return visitor.visitChildren(this);
16123 		}
16124 	}
16125 
16126 	public final TriggerOrderContext triggerOrder() throws RecognitionException {
16127 		TriggerOrderContext _localctx = new TriggerOrderContext(_ctx, getState());
16128 		enterRule(_localctx, 306, RULE_triggerOrder);
16129 		int _la;
16130 		try {
16131 			enterOuterAlt(_localctx, 1);
16132 			{
16133 			setState(1599);
16134 			_la = _input.LA(1);
16135 			if ( !(_la==FOLLOWS || _la==PRECEDES) ) {
16136 			_errHandler.recoverInline(this);
16137 			}
16138 			else {
16139 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16140 				_errHandler.reportMatch(this);
16141 				consume();
16142 			}
16143 			setState(1600);
16144 			triggerName();
16145 			}
16146 		}
16147 		catch (RecognitionException re) {
16148 			_localctx.exception = re;
16149 			_errHandler.reportError(this, re);
16150 			_errHandler.recover(this, re);
16151 		}
16152 		finally {
16153 			exitRule();
16154 		}
16155 		return _localctx;
16156 	}
16157 
16158 	public static class ExprContext extends ParserRuleContext {
16159 		public BooleanPrimaryContext booleanPrimary() {
16160 			return getRuleContext(BooleanPrimaryContext.class,0);
16161 		}
16162 		public NotOperatorContext notOperator() {
16163 			return getRuleContext(NotOperatorContext.class,0);
16164 		}
16165 		public List<ExprContext> expr() {
16166 			return getRuleContexts(ExprContext.class);
16167 		}
16168 		public ExprContext expr(int i) {
16169 			return getRuleContext(ExprContext.class,i);
16170 		}
16171 		public AndOperatorContext andOperator() {
16172 			return getRuleContext(AndOperatorContext.class,0);
16173 		}
16174 		public OrOperatorContext orOperator() {
16175 			return getRuleContext(OrOperatorContext.class,0);
16176 		}
16177 		public TerminalNode XOR() { return getToken(HiveStatementParser.XOR, 0); }
16178 		public ExprContext(ParserRuleContext parent, int invokingState) {
16179 			super(parent, invokingState);
16180 		}
16181 		@Override public int getRuleIndex() { return RULE_expr; }
16182 		@Override
16183 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16184 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitExpr(this);
16185 			else return visitor.visitChildren(this);
16186 		}
16187 	}
16188 
16189 	public final ExprContext expr() throws RecognitionException {
16190 		return expr(0);
16191 	}
16192 
16193 	private ExprContext expr(int _p) throws RecognitionException {
16194 		ParserRuleContext _parentctx = _ctx;
16195 		int _parentState = getState();
16196 		ExprContext _localctx = new ExprContext(_ctx, _parentState);
16197 		ExprContext _prevctx = _localctx;
16198 		int _startState = 308;
16199 		enterRecursionRule(_localctx, 308, RULE_expr, _p);
16200 		try {
16201 			int _alt;
16202 			enterOuterAlt(_localctx, 1);
16203 			{
16204 			setState(1607);
16205 			_errHandler.sync(this);
16206 			switch ( getInterpreter().adaptivePredict(_input,179,_ctx) ) {
16207 			case 1:
16208 				{
16209 				setState(1603);
16210 				booleanPrimary(0);
16211 				}
16212 				break;
16213 			case 2:
16214 				{
16215 				setState(1604);
16216 				notOperator();
16217 				setState(1605);
16218 				expr(1);
16219 				}
16220 				break;
16221 			}
16222 			_ctx.stop = _input.LT(-1);
16223 			setState(1622);
16224 			_errHandler.sync(this);
16225 			_alt = getInterpreter().adaptivePredict(_input,181,_ctx);
16226 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
16227 				if ( _alt==1 ) {
16228 					if ( _parseListeners!=null ) triggerExitRuleEvent();
16229 					_prevctx = _localctx;
16230 					{
16231 					setState(1620);
16232 					_errHandler.sync(this);
16233 					switch ( getInterpreter().adaptivePredict(_input,180,_ctx) ) {
16234 					case 1:
16235 						{
16236 						_localctx = new ExprContext(_parentctx, _parentState);
16237 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
16238 						setState(1609);
16239 						if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
16240 						setState(1610);
16241 						andOperator();
16242 						setState(1611);
16243 						expr(5);
16244 						}
16245 						break;
16246 					case 2:
16247 						{
16248 						_localctx = new ExprContext(_parentctx, _parentState);
16249 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
16250 						setState(1613);
16251 						if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
16252 						setState(1614);
16253 						orOperator();
16254 						setState(1615);
16255 						expr(4);
16256 						}
16257 						break;
16258 					case 3:
16259 						{
16260 						_localctx = new ExprContext(_parentctx, _parentState);
16261 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
16262 						setState(1617);
16263 						if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
16264 						setState(1618);
16265 						match(XOR);
16266 						setState(1619);
16267 						expr(3);
16268 						}
16269 						break;
16270 					}
16271 					} 
16272 				}
16273 				setState(1624);
16274 				_errHandler.sync(this);
16275 				_alt = getInterpreter().adaptivePredict(_input,181,_ctx);
16276 			}
16277 			}
16278 		}
16279 		catch (RecognitionException re) {
16280 			_localctx.exception = re;
16281 			_errHandler.reportError(this, re);
16282 			_errHandler.recover(this, re);
16283 		}
16284 		finally {
16285 			unrollRecursionContexts(_parentctx);
16286 		}
16287 		return _localctx;
16288 	}
16289 
16290 	public static class AndOperatorContext extends ParserRuleContext {
16291 		public TerminalNode AND() { return getToken(HiveStatementParser.AND, 0); }
16292 		public TerminalNode AND_() { return getToken(HiveStatementParser.AND_, 0); }
16293 		public AndOperatorContext(ParserRuleContext parent, int invokingState) {
16294 			super(parent, invokingState);
16295 		}
16296 		@Override public int getRuleIndex() { return RULE_andOperator; }
16297 		@Override
16298 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16299 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAndOperator(this);
16300 			else return visitor.visitChildren(this);
16301 		}
16302 	}
16303 
16304 	public final AndOperatorContext andOperator() throws RecognitionException {
16305 		AndOperatorContext _localctx = new AndOperatorContext(_ctx, getState());
16306 		enterRule(_localctx, 310, RULE_andOperator);
16307 		int _la;
16308 		try {
16309 			enterOuterAlt(_localctx, 1);
16310 			{
16311 			setState(1625);
16312 			_la = _input.LA(1);
16313 			if ( !(_la==AND_ || _la==AND) ) {
16314 			_errHandler.recoverInline(this);
16315 			}
16316 			else {
16317 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16318 				_errHandler.reportMatch(this);
16319 				consume();
16320 			}
16321 			}
16322 		}
16323 		catch (RecognitionException re) {
16324 			_localctx.exception = re;
16325 			_errHandler.reportError(this, re);
16326 			_errHandler.recover(this, re);
16327 		}
16328 		finally {
16329 			exitRule();
16330 		}
16331 		return _localctx;
16332 	}
16333 
16334 	public static class OrOperatorContext extends ParserRuleContext {
16335 		public TerminalNode OR() { return getToken(HiveStatementParser.OR, 0); }
16336 		public TerminalNode OR_() { return getToken(HiveStatementParser.OR_, 0); }
16337 		public OrOperatorContext(ParserRuleContext parent, int invokingState) {
16338 			super(parent, invokingState);
16339 		}
16340 		@Override public int getRuleIndex() { return RULE_orOperator; }
16341 		@Override
16342 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16343 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOrOperator(this);
16344 			else return visitor.visitChildren(this);
16345 		}
16346 	}
16347 
16348 	public final OrOperatorContext orOperator() throws RecognitionException {
16349 		OrOperatorContext _localctx = new OrOperatorContext(_ctx, getState());
16350 		enterRule(_localctx, 312, RULE_orOperator);
16351 		int _la;
16352 		try {
16353 			enterOuterAlt(_localctx, 1);
16354 			{
16355 			setState(1627);
16356 			_la = _input.LA(1);
16357 			if ( !(_la==OR_ || _la==OR) ) {
16358 			_errHandler.recoverInline(this);
16359 			}
16360 			else {
16361 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16362 				_errHandler.reportMatch(this);
16363 				consume();
16364 			}
16365 			}
16366 		}
16367 		catch (RecognitionException re) {
16368 			_localctx.exception = re;
16369 			_errHandler.reportError(this, re);
16370 			_errHandler.recover(this, re);
16371 		}
16372 		finally {
16373 			exitRule();
16374 		}
16375 		return _localctx;
16376 	}
16377 
16378 	public static class NotOperatorContext extends ParserRuleContext {
16379 		public TerminalNode NOT() { return getToken(HiveStatementParser.NOT, 0); }
16380 		public TerminalNode NOT_() { return getToken(HiveStatementParser.NOT_, 0); }
16381 		public NotOperatorContext(ParserRuleContext parent, int invokingState) {
16382 			super(parent, invokingState);
16383 		}
16384 		@Override public int getRuleIndex() { return RULE_notOperator; }
16385 		@Override
16386 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16387 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNotOperator(this);
16388 			else return visitor.visitChildren(this);
16389 		}
16390 	}
16391 
16392 	public final NotOperatorContext notOperator() throws RecognitionException {
16393 		NotOperatorContext _localctx = new NotOperatorContext(_ctx, getState());
16394 		enterRule(_localctx, 314, RULE_notOperator);
16395 		int _la;
16396 		try {
16397 			enterOuterAlt(_localctx, 1);
16398 			{
16399 			setState(1629);
16400 			_la = _input.LA(1);
16401 			if ( !(_la==NOT_ || _la==NOT) ) {
16402 			_errHandler.recoverInline(this);
16403 			}
16404 			else {
16405 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16406 				_errHandler.reportMatch(this);
16407 				consume();
16408 			}
16409 			}
16410 		}
16411 		catch (RecognitionException re) {
16412 			_localctx.exception = re;
16413 			_errHandler.reportError(this, re);
16414 			_errHandler.recover(this, re);
16415 		}
16416 		finally {
16417 			exitRule();
16418 		}
16419 		return _localctx;
16420 	}
16421 
16422 	public static class BooleanPrimaryContext extends ParserRuleContext {
16423 		public PredicateContext predicate() {
16424 			return getRuleContext(PredicateContext.class,0);
16425 		}
16426 		public BooleanPrimaryContext booleanPrimary() {
16427 			return getRuleContext(BooleanPrimaryContext.class,0);
16428 		}
16429 		public TerminalNode IS() { return getToken(HiveStatementParser.IS, 0); }
16430 		public TerminalNode TRUE() { return getToken(HiveStatementParser.TRUE, 0); }
16431 		public TerminalNode FALSE() { return getToken(HiveStatementParser.FALSE, 0); }
16432 		public TerminalNode UNKNOWN() { return getToken(HiveStatementParser.UNKNOWN, 0); }
16433 		public TerminalNode NULL() { return getToken(HiveStatementParser.NULL, 0); }
16434 		public TerminalNode NOT() { return getToken(HiveStatementParser.NOT, 0); }
16435 		public TerminalNode SAFE_EQ_() { return getToken(HiveStatementParser.SAFE_EQ_, 0); }
16436 		public TerminalNode MEMBER() { return getToken(HiveStatementParser.MEMBER, 0); }
16437 		public TerminalNode OF() { return getToken(HiveStatementParser.OF, 0); }
16438 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
16439 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
16440 		public ExprContext expr() {
16441 			return getRuleContext(ExprContext.class,0);
16442 		}
16443 		public ComparisonOperatorContext comparisonOperator() {
16444 			return getRuleContext(ComparisonOperatorContext.class,0);
16445 		}
16446 		public SubqueryContext subquery() {
16447 			return getRuleContext(SubqueryContext.class,0);
16448 		}
16449 		public TerminalNode ALL() { return getToken(HiveStatementParser.ALL, 0); }
16450 		public TerminalNode ANY() { return getToken(HiveStatementParser.ANY, 0); }
16451 		public AssignmentOperatorContext assignmentOperator() {
16452 			return getRuleContext(AssignmentOperatorContext.class,0);
16453 		}
16454 		public BooleanPrimaryContext(ParserRuleContext parent, int invokingState) {
16455 			super(parent, invokingState);
16456 		}
16457 		@Override public int getRuleIndex() { return RULE_booleanPrimary; }
16458 		@Override
16459 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16460 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitBooleanPrimary(this);
16461 			else return visitor.visitChildren(this);
16462 		}
16463 	}
16464 
16465 	public final BooleanPrimaryContext booleanPrimary() throws RecognitionException {
16466 		return booleanPrimary(0);
16467 	}
16468 
16469 	private BooleanPrimaryContext booleanPrimary(int _p) throws RecognitionException {
16470 		ParserRuleContext _parentctx = _ctx;
16471 		int _parentState = getState();
16472 		BooleanPrimaryContext _localctx = new BooleanPrimaryContext(_ctx, _parentState);
16473 		BooleanPrimaryContext _prevctx = _localctx;
16474 		int _startState = 316;
16475 		enterRecursionRule(_localctx, 316, RULE_booleanPrimary, _p);
16476 		int _la;
16477 		try {
16478 			int _alt;
16479 			enterOuterAlt(_localctx, 1);
16480 			{
16481 			{
16482 			setState(1632);
16483 			predicate();
16484 			}
16485 			_ctx.stop = _input.LT(-1);
16486 			setState(1665);
16487 			_errHandler.sync(this);
16488 			_alt = getInterpreter().adaptivePredict(_input,184,_ctx);
16489 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
16490 				if ( _alt==1 ) {
16491 					if ( _parseListeners!=null ) triggerExitRuleEvent();
16492 					_prevctx = _localctx;
16493 					{
16494 					setState(1663);
16495 					_errHandler.sync(this);
16496 					switch ( getInterpreter().adaptivePredict(_input,183,_ctx) ) {
16497 					case 1:
16498 						{
16499 						_localctx = new BooleanPrimaryContext(_parentctx, _parentState);
16500 						pushNewRecursionContext(_localctx, _startState, RULE_booleanPrimary);
16501 						setState(1634);
16502 						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
16503 						setState(1635);
16504 						match(IS);
16505 						setState(1637);
16506 						_errHandler.sync(this);
16507 						_la = _input.LA(1);
16508 						if (_la==NOT) {
16509 							{
16510 							setState(1636);
16511 							match(NOT);
16512 							}
16513 						}
16514 
16515 						setState(1639);
16516 						_la = _input.LA(1);
16517 						if ( !(_la==FALSE || _la==NULL || _la==TRUE || _la==UNKNOWN) ) {
16518 						_errHandler.recoverInline(this);
16519 						}
16520 						else {
16521 							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16522 							_errHandler.reportMatch(this);
16523 							consume();
16524 						}
16525 						}
16526 						break;
16527 					case 2:
16528 						{
16529 						_localctx = new BooleanPrimaryContext(_parentctx, _parentState);
16530 						pushNewRecursionContext(_localctx, _startState, RULE_booleanPrimary);
16531 						setState(1640);
16532 						if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
16533 						setState(1641);
16534 						match(SAFE_EQ_);
16535 						setState(1642);
16536 						predicate();
16537 						}
16538 						break;
16539 					case 3:
16540 						{
16541 						_localctx = new BooleanPrimaryContext(_parentctx, _parentState);
16542 						pushNewRecursionContext(_localctx, _startState, RULE_booleanPrimary);
16543 						setState(1643);
16544 						if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
16545 						setState(1644);
16546 						match(MEMBER);
16547 						setState(1645);
16548 						match(OF);
16549 						setState(1646);
16550 						match(LP_);
16551 						{
16552 						setState(1647);
16553 						expr(0);
16554 						}
16555 						setState(1648);
16556 						match(RP_);
16557 						}
16558 						break;
16559 					case 4:
16560 						{
16561 						_localctx = new BooleanPrimaryContext(_parentctx, _parentState);
16562 						pushNewRecursionContext(_localctx, _startState, RULE_booleanPrimary);
16563 						setState(1650);
16564 						if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
16565 						setState(1651);
16566 						comparisonOperator();
16567 						setState(1652);
16568 						predicate();
16569 						}
16570 						break;
16571 					case 5:
16572 						{
16573 						_localctx = new BooleanPrimaryContext(_parentctx, _parentState);
16574 						pushNewRecursionContext(_localctx, _startState, RULE_booleanPrimary);
16575 						setState(1654);
16576 						if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
16577 						setState(1655);
16578 						comparisonOperator();
16579 						setState(1656);
16580 						_la = _input.LA(1);
16581 						if ( !(_la==ALL || _la==ANY) ) {
16582 						_errHandler.recoverInline(this);
16583 						}
16584 						else {
16585 							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16586 							_errHandler.reportMatch(this);
16587 							consume();
16588 						}
16589 						setState(1657);
16590 						subquery();
16591 						}
16592 						break;
16593 					case 6:
16594 						{
16595 						_localctx = new BooleanPrimaryContext(_parentctx, _parentState);
16596 						pushNewRecursionContext(_localctx, _startState, RULE_booleanPrimary);
16597 						setState(1659);
16598 						if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
16599 						setState(1660);
16600 						assignmentOperator();
16601 						setState(1661);
16602 						predicate();
16603 						}
16604 						break;
16605 					}
16606 					} 
16607 				}
16608 				setState(1667);
16609 				_errHandler.sync(this);
16610 				_alt = getInterpreter().adaptivePredict(_input,184,_ctx);
16611 			}
16612 			}
16613 		}
16614 		catch (RecognitionException re) {
16615 			_localctx.exception = re;
16616 			_errHandler.reportError(this, re);
16617 			_errHandler.recover(this, re);
16618 		}
16619 		finally {
16620 			unrollRecursionContexts(_parentctx);
16621 		}
16622 		return _localctx;
16623 	}
16624 
16625 	public static class AssignmentOperatorContext extends ParserRuleContext {
16626 		public TerminalNode EQ_() { return getToken(HiveStatementParser.EQ_, 0); }
16627 		public TerminalNode ASSIGNMENT_() { return getToken(HiveStatementParser.ASSIGNMENT_, 0); }
16628 		public AssignmentOperatorContext(ParserRuleContext parent, int invokingState) {
16629 			super(parent, invokingState);
16630 		}
16631 		@Override public int getRuleIndex() { return RULE_assignmentOperator; }
16632 		@Override
16633 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16634 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAssignmentOperator(this);
16635 			else return visitor.visitChildren(this);
16636 		}
16637 	}
16638 
16639 	public final AssignmentOperatorContext assignmentOperator() throws RecognitionException {
16640 		AssignmentOperatorContext _localctx = new AssignmentOperatorContext(_ctx, getState());
16641 		enterRule(_localctx, 318, RULE_assignmentOperator);
16642 		int _la;
16643 		try {
16644 			enterOuterAlt(_localctx, 1);
16645 			{
16646 			setState(1668);
16647 			_la = _input.LA(1);
16648 			if ( !(_la==EQ_ || _la==ASSIGNMENT_) ) {
16649 			_errHandler.recoverInline(this);
16650 			}
16651 			else {
16652 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16653 				_errHandler.reportMatch(this);
16654 				consume();
16655 			}
16656 			}
16657 		}
16658 		catch (RecognitionException re) {
16659 			_localctx.exception = re;
16660 			_errHandler.reportError(this, re);
16661 			_errHandler.recover(this, re);
16662 		}
16663 		finally {
16664 			exitRule();
16665 		}
16666 		return _localctx;
16667 	}
16668 
16669 	public static class ComparisonOperatorContext extends ParserRuleContext {
16670 		public TerminalNode EQ_() { return getToken(HiveStatementParser.EQ_, 0); }
16671 		public TerminalNode GTE_() { return getToken(HiveStatementParser.GTE_, 0); }
16672 		public TerminalNode GT_() { return getToken(HiveStatementParser.GT_, 0); }
16673 		public TerminalNode LTE_() { return getToken(HiveStatementParser.LTE_, 0); }
16674 		public TerminalNode LT_() { return getToken(HiveStatementParser.LT_, 0); }
16675 		public TerminalNode NEQ_() { return getToken(HiveStatementParser.NEQ_, 0); }
16676 		public ComparisonOperatorContext(ParserRuleContext parent, int invokingState) {
16677 			super(parent, invokingState);
16678 		}
16679 		@Override public int getRuleIndex() { return RULE_comparisonOperator; }
16680 		@Override
16681 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16682 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitComparisonOperator(this);
16683 			else return visitor.visitChildren(this);
16684 		}
16685 	}
16686 
16687 	public final ComparisonOperatorContext comparisonOperator() throws RecognitionException {
16688 		ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, getState());
16689 		enterRule(_localctx, 320, RULE_comparisonOperator);
16690 		int _la;
16691 		try {
16692 			enterOuterAlt(_localctx, 1);
16693 			{
16694 			setState(1670);
16695 			_la = _input.LA(1);
16696 			if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EQ_) | (1L << NEQ_) | (1L << GT_) | (1L << GTE_) | (1L << LT_) | (1L << LTE_))) != 0)) ) {
16697 			_errHandler.recoverInline(this);
16698 			}
16699 			else {
16700 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16701 				_errHandler.reportMatch(this);
16702 				consume();
16703 			}
16704 			}
16705 		}
16706 		catch (RecognitionException re) {
16707 			_localctx.exception = re;
16708 			_errHandler.reportError(this, re);
16709 			_errHandler.recover(this, re);
16710 		}
16711 		finally {
16712 			exitRule();
16713 		}
16714 		return _localctx;
16715 	}
16716 
16717 	public static class PredicateContext extends ParserRuleContext {
16718 		public List<BitExprContext> bitExpr() {
16719 			return getRuleContexts(BitExprContext.class);
16720 		}
16721 		public BitExprContext bitExpr(int i) {
16722 			return getRuleContext(BitExprContext.class,i);
16723 		}
16724 		public TerminalNode IN() { return getToken(HiveStatementParser.IN, 0); }
16725 		public SubqueryContext subquery() {
16726 			return getRuleContext(SubqueryContext.class,0);
16727 		}
16728 		public TerminalNode NOT() { return getToken(HiveStatementParser.NOT, 0); }
16729 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
16730 		public List<ExprContext> expr() {
16731 			return getRuleContexts(ExprContext.class);
16732 		}
16733 		public ExprContext expr(int i) {
16734 			return getRuleContext(ExprContext.class,i);
16735 		}
16736 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
16737 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
16738 		public TerminalNode COMMA_(int i) {
16739 			return getToken(HiveStatementParser.COMMA_, i);
16740 		}
16741 		public TerminalNode BETWEEN() { return getToken(HiveStatementParser.BETWEEN, 0); }
16742 		public TerminalNode AND() { return getToken(HiveStatementParser.AND, 0); }
16743 		public PredicateContext predicate() {
16744 			return getRuleContext(PredicateContext.class,0);
16745 		}
16746 		public TerminalNode SOUNDS() { return getToken(HiveStatementParser.SOUNDS, 0); }
16747 		public TerminalNode LIKE() { return getToken(HiveStatementParser.LIKE, 0); }
16748 		public List<SimpleExprContext> simpleExpr() {
16749 			return getRuleContexts(SimpleExprContext.class);
16750 		}
16751 		public SimpleExprContext simpleExpr(int i) {
16752 			return getRuleContext(SimpleExprContext.class,i);
16753 		}
16754 		public TerminalNode ESCAPE() { return getToken(HiveStatementParser.ESCAPE, 0); }
16755 		public TerminalNode REGEXP() { return getToken(HiveStatementParser.REGEXP, 0); }
16756 		public TerminalNode RLIKE() { return getToken(HiveStatementParser.RLIKE, 0); }
16757 		public PredicateContext(ParserRuleContext parent, int invokingState) {
16758 			super(parent, invokingState);
16759 		}
16760 		@Override public int getRuleIndex() { return RULE_predicate; }
16761 		@Override
16762 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16763 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPredicate(this);
16764 			else return visitor.visitChildren(this);
16765 		}
16766 	}
16767 
16768 	public final PredicateContext predicate() throws RecognitionException {
16769 		PredicateContext _localctx = new PredicateContext(_ctx, getState());
16770 		enterRule(_localctx, 322, RULE_predicate);
16771 		int _la;
16772 		try {
16773 			setState(1727);
16774 			_errHandler.sync(this);
16775 			switch ( getInterpreter().adaptivePredict(_input,192,_ctx) ) {
16776 			case 1:
16777 				enterOuterAlt(_localctx, 1);
16778 				{
16779 				setState(1672);
16780 				bitExpr(0);
16781 				setState(1674);
16782 				_errHandler.sync(this);
16783 				_la = _input.LA(1);
16784 				if (_la==NOT) {
16785 					{
16786 					setState(1673);
16787 					match(NOT);
16788 					}
16789 				}
16790 
16791 				setState(1676);
16792 				match(IN);
16793 				setState(1677);
16794 				subquery();
16795 				}
16796 				break;
16797 			case 2:
16798 				enterOuterAlt(_localctx, 2);
16799 				{
16800 				setState(1679);
16801 				bitExpr(0);
16802 				setState(1681);
16803 				_errHandler.sync(this);
16804 				_la = _input.LA(1);
16805 				if (_la==NOT) {
16806 					{
16807 					setState(1680);
16808 					match(NOT);
16809 					}
16810 				}
16811 
16812 				setState(1683);
16813 				match(IN);
16814 				setState(1684);
16815 				match(LP_);
16816 				setState(1685);
16817 				expr(0);
16818 				setState(1690);
16819 				_errHandler.sync(this);
16820 				_la = _input.LA(1);
16821 				while (_la==COMMA_) {
16822 					{
16823 					{
16824 					setState(1686);
16825 					match(COMMA_);
16826 					setState(1687);
16827 					expr(0);
16828 					}
16829 					}
16830 					setState(1692);
16831 					_errHandler.sync(this);
16832 					_la = _input.LA(1);
16833 				}
16834 				setState(1693);
16835 				match(RP_);
16836 				}
16837 				break;
16838 			case 3:
16839 				enterOuterAlt(_localctx, 3);
16840 				{
16841 				setState(1695);
16842 				bitExpr(0);
16843 				setState(1697);
16844 				_errHandler.sync(this);
16845 				_la = _input.LA(1);
16846 				if (_la==NOT) {
16847 					{
16848 					setState(1696);
16849 					match(NOT);
16850 					}
16851 				}
16852 
16853 				setState(1699);
16854 				match(BETWEEN);
16855 				setState(1700);
16856 				bitExpr(0);
16857 				setState(1701);
16858 				match(AND);
16859 				setState(1702);
16860 				predicate();
16861 				}
16862 				break;
16863 			case 4:
16864 				enterOuterAlt(_localctx, 4);
16865 				{
16866 				setState(1704);
16867 				bitExpr(0);
16868 				setState(1705);
16869 				match(SOUNDS);
16870 				setState(1706);
16871 				match(LIKE);
16872 				setState(1707);
16873 				bitExpr(0);
16874 				}
16875 				break;
16876 			case 5:
16877 				enterOuterAlt(_localctx, 5);
16878 				{
16879 				setState(1709);
16880 				bitExpr(0);
16881 				setState(1711);
16882 				_errHandler.sync(this);
16883 				_la = _input.LA(1);
16884 				if (_la==NOT) {
16885 					{
16886 					setState(1710);
16887 					match(NOT);
16888 					}
16889 				}
16890 
16891 				setState(1713);
16892 				match(LIKE);
16893 				setState(1714);
16894 				simpleExpr(0);
16895 				setState(1717);
16896 				_errHandler.sync(this);
16897 				switch ( getInterpreter().adaptivePredict(_input,190,_ctx) ) {
16898 				case 1:
16899 					{
16900 					setState(1715);
16901 					match(ESCAPE);
16902 					setState(1716);
16903 					simpleExpr(0);
16904 					}
16905 					break;
16906 				}
16907 				}
16908 				break;
16909 			case 6:
16910 				enterOuterAlt(_localctx, 6);
16911 				{
16912 				setState(1719);
16913 				bitExpr(0);
16914 				setState(1721);
16915 				_errHandler.sync(this);
16916 				_la = _input.LA(1);
16917 				if (_la==NOT) {
16918 					{
16919 					setState(1720);
16920 					match(NOT);
16921 					}
16922 				}
16923 
16924 				setState(1723);
16925 				_la = _input.LA(1);
16926 				if ( !(_la==REGEXP || _la==RLIKE) ) {
16927 				_errHandler.recoverInline(this);
16928 				}
16929 				else {
16930 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
16931 					_errHandler.reportMatch(this);
16932 					consume();
16933 				}
16934 				setState(1724);
16935 				bitExpr(0);
16936 				}
16937 				break;
16938 			case 7:
16939 				enterOuterAlt(_localctx, 7);
16940 				{
16941 				setState(1726);
16942 				bitExpr(0);
16943 				}
16944 				break;
16945 			}
16946 		}
16947 		catch (RecognitionException re) {
16948 			_localctx.exception = re;
16949 			_errHandler.reportError(this, re);
16950 			_errHandler.recover(this, re);
16951 		}
16952 		finally {
16953 			exitRule();
16954 		}
16955 		return _localctx;
16956 	}
16957 
16958 	public static class BitExprContext extends ParserRuleContext {
16959 		public SimpleExprContext simpleExpr() {
16960 			return getRuleContext(SimpleExprContext.class,0);
16961 		}
16962 		public List<BitExprContext> bitExpr() {
16963 			return getRuleContexts(BitExprContext.class);
16964 		}
16965 		public BitExprContext bitExpr(int i) {
16966 			return getRuleContext(BitExprContext.class,i);
16967 		}
16968 		public TerminalNode VERTICAL_BAR_() { return getToken(HiveStatementParser.VERTICAL_BAR_, 0); }
16969 		public TerminalNode AMPERSAND_() { return getToken(HiveStatementParser.AMPERSAND_, 0); }
16970 		public TerminalNode SIGNED_LEFT_SHIFT_() { return getToken(HiveStatementParser.SIGNED_LEFT_SHIFT_, 0); }
16971 		public TerminalNode SIGNED_RIGHT_SHIFT_() { return getToken(HiveStatementParser.SIGNED_RIGHT_SHIFT_, 0); }
16972 		public TerminalNode PLUS_() { return getToken(HiveStatementParser.PLUS_, 0); }
16973 		public TerminalNode MINUS_() { return getToken(HiveStatementParser.MINUS_, 0); }
16974 		public TerminalNode ASTERISK_() { return getToken(HiveStatementParser.ASTERISK_, 0); }
16975 		public TerminalNode SLASH_() { return getToken(HiveStatementParser.SLASH_, 0); }
16976 		public TerminalNode DIV() { return getToken(HiveStatementParser.DIV, 0); }
16977 		public TerminalNode MOD() { return getToken(HiveStatementParser.MOD, 0); }
16978 		public TerminalNode MOD_() { return getToken(HiveStatementParser.MOD_, 0); }
16979 		public TerminalNode CARET_() { return getToken(HiveStatementParser.CARET_, 0); }
16980 		public IntervalExpressionContext intervalExpression() {
16981 			return getRuleContext(IntervalExpressionContext.class,0);
16982 		}
16983 		public BitExprContext(ParserRuleContext parent, int invokingState) {
16984 			super(parent, invokingState);
16985 		}
16986 		@Override public int getRuleIndex() { return RULE_bitExpr; }
16987 		@Override
16988 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
16989 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitBitExpr(this);
16990 			else return visitor.visitChildren(this);
16991 		}
16992 	}
16993 
16994 	public final BitExprContext bitExpr() throws RecognitionException {
16995 		return bitExpr(0);
16996 	}
16997 
16998 	private BitExprContext bitExpr(int _p) throws RecognitionException {
16999 		ParserRuleContext _parentctx = _ctx;
17000 		int _parentState = getState();
17001 		BitExprContext _localctx = new BitExprContext(_ctx, _parentState);
17002 		BitExprContext _prevctx = _localctx;
17003 		int _startState = 324;
17004 		enterRecursionRule(_localctx, 324, RULE_bitExpr, _p);
17005 		try {
17006 			int _alt;
17007 			enterOuterAlt(_localctx, 1);
17008 			{
17009 			{
17010 			setState(1730);
17011 			simpleExpr(0);
17012 			}
17013 			_ctx.stop = _input.LT(-1);
17014 			setState(1776);
17015 			_errHandler.sync(this);
17016 			_alt = getInterpreter().adaptivePredict(_input,194,_ctx);
17017 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
17018 				if ( _alt==1 ) {
17019 					if ( _parseListeners!=null ) triggerExitRuleEvent();
17020 					_prevctx = _localctx;
17021 					{
17022 					setState(1774);
17023 					_errHandler.sync(this);
17024 					switch ( getInterpreter().adaptivePredict(_input,193,_ctx) ) {
17025 					case 1:
17026 						{
17027 						_localctx = new BitExprContext(_parentctx, _parentState);
17028 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17029 						setState(1732);
17030 						if (!(precpred(_ctx, 15))) throw new FailedPredicateException(this, "precpred(_ctx, 15)");
17031 						setState(1733);
17032 						match(VERTICAL_BAR_);
17033 						setState(1734);
17034 						bitExpr(16);
17035 						}
17036 						break;
17037 					case 2:
17038 						{
17039 						_localctx = new BitExprContext(_parentctx, _parentState);
17040 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17041 						setState(1735);
17042 						if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)");
17043 						setState(1736);
17044 						match(AMPERSAND_);
17045 						setState(1737);
17046 						bitExpr(15);
17047 						}
17048 						break;
17049 					case 3:
17050 						{
17051 						_localctx = new BitExprContext(_parentctx, _parentState);
17052 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17053 						setState(1738);
17054 						if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)");
17055 						setState(1739);
17056 						match(SIGNED_LEFT_SHIFT_);
17057 						setState(1740);
17058 						bitExpr(14);
17059 						}
17060 						break;
17061 					case 4:
17062 						{
17063 						_localctx = new BitExprContext(_parentctx, _parentState);
17064 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17065 						setState(1741);
17066 						if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
17067 						setState(1742);
17068 						match(SIGNED_RIGHT_SHIFT_);
17069 						setState(1743);
17070 						bitExpr(13);
17071 						}
17072 						break;
17073 					case 5:
17074 						{
17075 						_localctx = new BitExprContext(_parentctx, _parentState);
17076 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17077 						setState(1744);
17078 						if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)");
17079 						setState(1745);
17080 						match(PLUS_);
17081 						setState(1746);
17082 						bitExpr(12);
17083 						}
17084 						break;
17085 					case 6:
17086 						{
17087 						_localctx = new BitExprContext(_parentctx, _parentState);
17088 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17089 						setState(1747);
17090 						if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
17091 						setState(1748);
17092 						match(MINUS_);
17093 						setState(1749);
17094 						bitExpr(11);
17095 						}
17096 						break;
17097 					case 7:
17098 						{
17099 						_localctx = new BitExprContext(_parentctx, _parentState);
17100 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17101 						setState(1750);
17102 						if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
17103 						setState(1751);
17104 						match(ASTERISK_);
17105 						setState(1752);
17106 						bitExpr(10);
17107 						}
17108 						break;
17109 					case 8:
17110 						{
17111 						_localctx = new BitExprContext(_parentctx, _parentState);
17112 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17113 						setState(1753);
17114 						if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
17115 						setState(1754);
17116 						match(SLASH_);
17117 						setState(1755);
17118 						bitExpr(9);
17119 						}
17120 						break;
17121 					case 9:
17122 						{
17123 						_localctx = new BitExprContext(_parentctx, _parentState);
17124 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17125 						setState(1756);
17126 						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
17127 						setState(1757);
17128 						match(DIV);
17129 						setState(1758);
17130 						bitExpr(8);
17131 						}
17132 						break;
17133 					case 10:
17134 						{
17135 						_localctx = new BitExprContext(_parentctx, _parentState);
17136 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17137 						setState(1759);
17138 						if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
17139 						setState(1760);
17140 						match(MOD);
17141 						setState(1761);
17142 						bitExpr(7);
17143 						}
17144 						break;
17145 					case 11:
17146 						{
17147 						_localctx = new BitExprContext(_parentctx, _parentState);
17148 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17149 						setState(1762);
17150 						if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
17151 						setState(1763);
17152 						match(MOD_);
17153 						setState(1764);
17154 						bitExpr(6);
17155 						}
17156 						break;
17157 					case 12:
17158 						{
17159 						_localctx = new BitExprContext(_parentctx, _parentState);
17160 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17161 						setState(1765);
17162 						if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
17163 						setState(1766);
17164 						match(CARET_);
17165 						setState(1767);
17166 						bitExpr(5);
17167 						}
17168 						break;
17169 					case 13:
17170 						{
17171 						_localctx = new BitExprContext(_parentctx, _parentState);
17172 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17173 						setState(1768);
17174 						if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
17175 						setState(1769);
17176 						match(PLUS_);
17177 						setState(1770);
17178 						intervalExpression();
17179 						}
17180 						break;
17181 					case 14:
17182 						{
17183 						_localctx = new BitExprContext(_parentctx, _parentState);
17184 						pushNewRecursionContext(_localctx, _startState, RULE_bitExpr);
17185 						setState(1771);
17186 						if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
17187 						setState(1772);
17188 						match(MINUS_);
17189 						setState(1773);
17190 						intervalExpression();
17191 						}
17192 						break;
17193 					}
17194 					} 
17195 				}
17196 				setState(1778);
17197 				_errHandler.sync(this);
17198 				_alt = getInterpreter().adaptivePredict(_input,194,_ctx);
17199 			}
17200 			}
17201 		}
17202 		catch (RecognitionException re) {
17203 			_localctx.exception = re;
17204 			_errHandler.reportError(this, re);
17205 			_errHandler.recover(this, re);
17206 		}
17207 		finally {
17208 			unrollRecursionContexts(_parentctx);
17209 		}
17210 		return _localctx;
17211 	}
17212 
17213 	public static class SimpleExprContext extends ParserRuleContext {
17214 		public FunctionCallContext functionCall() {
17215 			return getRuleContext(FunctionCallContext.class,0);
17216 		}
17217 		public ParameterMarkerContext parameterMarker() {
17218 			return getRuleContext(ParameterMarkerContext.class,0);
17219 		}
17220 		public LiteralsContext literals() {
17221 			return getRuleContext(LiteralsContext.class,0);
17222 		}
17223 		public ColumnRefContext columnRef() {
17224 			return getRuleContext(ColumnRefContext.class,0);
17225 		}
17226 		public VariableContext variable() {
17227 			return getRuleContext(VariableContext.class,0);
17228 		}
17229 		public List<SimpleExprContext> simpleExpr() {
17230 			return getRuleContexts(SimpleExprContext.class);
17231 		}
17232 		public SimpleExprContext simpleExpr(int i) {
17233 			return getRuleContext(SimpleExprContext.class,i);
17234 		}
17235 		public TerminalNode PLUS_() { return getToken(HiveStatementParser.PLUS_, 0); }
17236 		public TerminalNode MINUS_() { return getToken(HiveStatementParser.MINUS_, 0); }
17237 		public TerminalNode TILDE_() { return getToken(HiveStatementParser.TILDE_, 0); }
17238 		public NotOperatorContext notOperator() {
17239 			return getRuleContext(NotOperatorContext.class,0);
17240 		}
17241 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
17242 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
17243 		public List<ExprContext> expr() {
17244 			return getRuleContexts(ExprContext.class);
17245 		}
17246 		public ExprContext expr(int i) {
17247 			return getRuleContext(ExprContext.class,i);
17248 		}
17249 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
17250 		public TerminalNode ROW() { return getToken(HiveStatementParser.ROW, 0); }
17251 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
17252 		public TerminalNode COMMA_(int i) {
17253 			return getToken(HiveStatementParser.COMMA_, i);
17254 		}
17255 		public SubqueryContext subquery() {
17256 			return getRuleContext(SubqueryContext.class,0);
17257 		}
17258 		public TerminalNode EXISTS() { return getToken(HiveStatementParser.EXISTS, 0); }
17259 		public TerminalNode LBE_() { return getToken(HiveStatementParser.LBE_, 0); }
17260 		public IdentifierContext identifier() {
17261 			return getRuleContext(IdentifierContext.class,0);
17262 		}
17263 		public TerminalNode RBE_() { return getToken(HiveStatementParser.RBE_, 0); }
17264 		public String_Context string_() {
17265 			return getRuleContext(String_Context.class,0);
17266 		}
17267 		public TerminalNode JSON_SEPARATOR() { return getToken(HiveStatementParser.JSON_SEPARATOR, 0); }
17268 		public TerminalNode JSON_UNQUOTED_SEPARATOR() { return getToken(HiveStatementParser.JSON_UNQUOTED_SEPARATOR, 0); }
17269 		public PathContext path() {
17270 			return getRuleContext(PathContext.class,0);
17271 		}
17272 		public TerminalNode RETURNING() { return getToken(HiveStatementParser.RETURNING, 0); }
17273 		public DataTypeContext dataType() {
17274 			return getRuleContext(DataTypeContext.class,0);
17275 		}
17276 		public OnEmptyErrorContext onEmptyError() {
17277 			return getRuleContext(OnEmptyErrorContext.class,0);
17278 		}
17279 		public MatchExpressionContext matchExpression() {
17280 			return getRuleContext(MatchExpressionContext.class,0);
17281 		}
17282 		public CaseExpressionContext caseExpression() {
17283 			return getRuleContext(CaseExpressionContext.class,0);
17284 		}
17285 		public IntervalExpressionContext intervalExpression() {
17286 			return getRuleContext(IntervalExpressionContext.class,0);
17287 		}
17288 		public TerminalNode OR_() { return getToken(HiveStatementParser.OR_, 0); }
17289 		public CollateClauseContext collateClause() {
17290 			return getRuleContext(CollateClauseContext.class,0);
17291 		}
17292 		public SimpleExprContext(ParserRuleContext parent, int invokingState) {
17293 			super(parent, invokingState);
17294 		}
17295 		@Override public int getRuleIndex() { return RULE_simpleExpr; }
17296 		@Override
17297 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
17298 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSimpleExpr(this);
17299 			else return visitor.visitChildren(this);
17300 		}
17301 	}
17302 
17303 	public final SimpleExprContext simpleExpr() throws RecognitionException {
17304 		return simpleExpr(0);
17305 	}
17306 
17307 	private SimpleExprContext simpleExpr(int _p) throws RecognitionException {
17308 		ParserRuleContext _parentctx = _ctx;
17309 		int _parentState = getState();
17310 		SimpleExprContext _localctx = new SimpleExprContext(_ctx, _parentState);
17311 		SimpleExprContext _prevctx = _localctx;
17312 		int _startState = 326;
17313 		enterRecursionRule(_localctx, 326, RULE_simpleExpr, _p);
17314 		int _la;
17315 		try {
17316 			int _alt;
17317 			enterOuterAlt(_localctx, 1);
17318 			{
17319 			setState(1831);
17320 			_errHandler.sync(this);
17321 			switch ( getInterpreter().adaptivePredict(_input,201,_ctx) ) {
17322 			case 1:
17323 				{
17324 				setState(1780);
17325 				functionCall();
17326 				}
17327 				break;
17328 			case 2:
17329 				{
17330 				setState(1781);
17331 				parameterMarker();
17332 				}
17333 				break;
17334 			case 3:
17335 				{
17336 				setState(1782);
17337 				literals();
17338 				}
17339 				break;
17340 			case 4:
17341 				{
17342 				setState(1783);
17343 				columnRef();
17344 				}
17345 				break;
17346 			case 5:
17347 				{
17348 				setState(1784);
17349 				variable();
17350 				}
17351 				break;
17352 			case 6:
17353 				{
17354 				setState(1790);
17355 				_errHandler.sync(this);
17356 				switch (_input.LA(1)) {
17357 				case PLUS_:
17358 					{
17359 					setState(1785);
17360 					match(PLUS_);
17361 					}
17362 					break;
17363 				case MINUS_:
17364 					{
17365 					setState(1786);
17366 					match(MINUS_);
17367 					}
17368 					break;
17369 				case TILDE_:
17370 					{
17371 					setState(1787);
17372 					match(TILDE_);
17373 					}
17374 					break;
17375 				case NOT_:
17376 				case NOT:
17377 					{
17378 					setState(1788);
17379 					notOperator();
17380 					}
17381 					break;
17382 				case BINARY:
17383 					{
17384 					setState(1789);
17385 					match(BINARY);
17386 					}
17387 					break;
17388 				default:
17389 					throw new NoViableAltException(this);
17390 				}
17391 				setState(1792);
17392 				simpleExpr(9);
17393 				}
17394 				break;
17395 			case 7:
17396 				{
17397 				setState(1794);
17398 				_errHandler.sync(this);
17399 				_la = _input.LA(1);
17400 				if (_la==ROW) {
17401 					{
17402 					setState(1793);
17403 					match(ROW);
17404 					}
17405 				}
17406 
17407 				setState(1796);
17408 				match(LP_);
17409 				setState(1797);
17410 				expr(0);
17411 				setState(1802);
17412 				_errHandler.sync(this);
17413 				_la = _input.LA(1);
17414 				while (_la==COMMA_) {
17415 					{
17416 					{
17417 					setState(1798);
17418 					match(COMMA_);
17419 					setState(1799);
17420 					expr(0);
17421 					}
17422 					}
17423 					setState(1804);
17424 					_errHandler.sync(this);
17425 					_la = _input.LA(1);
17426 				}
17427 				setState(1805);
17428 				match(RP_);
17429 				}
17430 				break;
17431 			case 8:
17432 				{
17433 				setState(1808);
17434 				_errHandler.sync(this);
17435 				_la = _input.LA(1);
17436 				if (_la==EXISTS) {
17437 					{
17438 					setState(1807);
17439 					match(EXISTS);
17440 					}
17441 				}
17442 
17443 				setState(1810);
17444 				subquery();
17445 				}
17446 				break;
17447 			case 9:
17448 				{
17449 				setState(1811);
17450 				match(LBE_);
17451 				setState(1812);
17452 				identifier();
17453 				setState(1813);
17454 				expr(0);
17455 				setState(1814);
17456 				match(RBE_);
17457 				}
17458 				break;
17459 			case 10:
17460 				{
17461 				setState(1816);
17462 				identifier();
17463 				setState(1817);
17464 				_la = _input.LA(1);
17465 				if ( !(_la==JSON_SEPARATOR || _la==JSON_UNQUOTED_SEPARATOR) ) {
17466 				_errHandler.recoverInline(this);
17467 				}
17468 				else {
17469 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
17470 					_errHandler.reportMatch(this);
17471 					consume();
17472 				}
17473 				setState(1818);
17474 				string_();
17475 				}
17476 				break;
17477 			case 11:
17478 				{
17479 				setState(1820);
17480 				path();
17481 				setState(1823);
17482 				_errHandler.sync(this);
17483 				switch ( getInterpreter().adaptivePredict(_input,199,_ctx) ) {
17484 				case 1:
17485 					{
17486 					setState(1821);
17487 					match(RETURNING);
17488 					setState(1822);
17489 					dataType();
17490 					}
17491 					break;
17492 				}
17493 				setState(1826);
17494 				_errHandler.sync(this);
17495 				switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) {
17496 				case 1:
17497 					{
17498 					setState(1825);
17499 					onEmptyError();
17500 					}
17501 					break;
17502 				}
17503 				}
17504 				break;
17505 			case 12:
17506 				{
17507 				setState(1828);
17508 				matchExpression();
17509 				}
17510 				break;
17511 			case 13:
17512 				{
17513 				setState(1829);
17514 				caseExpression();
17515 				}
17516 				break;
17517 			case 14:
17518 				{
17519 				setState(1830);
17520 				intervalExpression();
17521 				}
17522 				break;
17523 			}
17524 			_ctx.stop = _input.LT(-1);
17525 			setState(1840);
17526 			_errHandler.sync(this);
17527 			_alt = getInterpreter().adaptivePredict(_input,203,_ctx);
17528 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
17529 				if ( _alt==1 ) {
17530 					if ( _parseListeners!=null ) triggerExitRuleEvent();
17531 					_prevctx = _localctx;
17532 					{
17533 					setState(1838);
17534 					_errHandler.sync(this);
17535 					switch ( getInterpreter().adaptivePredict(_input,202,_ctx) ) {
17536 					case 1:
17537 						{
17538 						_localctx = new SimpleExprContext(_parentctx, _parentState);
17539 						pushNewRecursionContext(_localctx, _startState, RULE_simpleExpr);
17540 						setState(1833);
17541 						if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
17542 						setState(1834);
17543 						match(OR_);
17544 						setState(1835);
17545 						simpleExpr(11);
17546 						}
17547 						break;
17548 					case 2:
17549 						{
17550 						_localctx = new SimpleExprContext(_parentctx, _parentState);
17551 						pushNewRecursionContext(_localctx, _startState, RULE_simpleExpr);
17552 						setState(1836);
17553 						if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
17554 						setState(1837);
17555 						collateClause();
17556 						}
17557 						break;
17558 					}
17559 					} 
17560 				}
17561 				setState(1842);
17562 				_errHandler.sync(this);
17563 				_alt = getInterpreter().adaptivePredict(_input,203,_ctx);
17564 			}
17565 			}
17566 		}
17567 		catch (RecognitionException re) {
17568 			_localctx.exception = re;
17569 			_errHandler.reportError(this, re);
17570 			_errHandler.recover(this, re);
17571 		}
17572 		finally {
17573 			unrollRecursionContexts(_parentctx);
17574 		}
17575 		return _localctx;
17576 	}
17577 
17578 	public static class PathContext extends ParserRuleContext {
17579 		public String_Context string_() {
17580 			return getRuleContext(String_Context.class,0);
17581 		}
17582 		public PathContext(ParserRuleContext parent, int invokingState) {
17583 			super(parent, invokingState);
17584 		}
17585 		@Override public int getRuleIndex() { return RULE_path; }
17586 		@Override
17587 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
17588 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPath(this);
17589 			else return visitor.visitChildren(this);
17590 		}
17591 	}
17592 
17593 	public final PathContext path() throws RecognitionException {
17594 		PathContext _localctx = new PathContext(_ctx, getState());
17595 		enterRule(_localctx, 328, RULE_path);
17596 		try {
17597 			enterOuterAlt(_localctx, 1);
17598 			{
17599 			setState(1843);
17600 			string_();
17601 			}
17602 		}
17603 		catch (RecognitionException re) {
17604 			_localctx.exception = re;
17605 			_errHandler.reportError(this, re);
17606 			_errHandler.recover(this, re);
17607 		}
17608 		finally {
17609 			exitRule();
17610 		}
17611 		return _localctx;
17612 	}
17613 
17614 	public static class OnEmptyErrorContext extends ParserRuleContext {
17615 		public TerminalNode ON() { return getToken(HiveStatementParser.ON, 0); }
17616 		public TerminalNode EMPTY() { return getToken(HiveStatementParser.EMPTY, 0); }
17617 		public List<TerminalNode> ERROR() { return getTokens(HiveStatementParser.ERROR); }
17618 		public TerminalNode ERROR(int i) {
17619 			return getToken(HiveStatementParser.ERROR, i);
17620 		}
17621 		public TerminalNode NULL() { return getToken(HiveStatementParser.NULL, 0); }
17622 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
17623 		public LiteralsContext literals() {
17624 			return getRuleContext(LiteralsContext.class,0);
17625 		}
17626 		public OnEmptyErrorContext(ParserRuleContext parent, int invokingState) {
17627 			super(parent, invokingState);
17628 		}
17629 		@Override public int getRuleIndex() { return RULE_onEmptyError; }
17630 		@Override
17631 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
17632 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOnEmptyError(this);
17633 			else return visitor.visitChildren(this);
17634 		}
17635 	}
17636 
17637 	public final OnEmptyErrorContext onEmptyError() throws RecognitionException {
17638 		OnEmptyErrorContext _localctx = new OnEmptyErrorContext(_ctx, getState());
17639 		enterRule(_localctx, 330, RULE_onEmptyError);
17640 		int _la;
17641 		try {
17642 			enterOuterAlt(_localctx, 1);
17643 			{
17644 			setState(1849);
17645 			_errHandler.sync(this);
17646 			switch (_input.LA(1)) {
17647 			case NULL:
17648 				{
17649 				setState(1845);
17650 				match(NULL);
17651 				}
17652 				break;
17653 			case ERROR:
17654 				{
17655 				setState(1846);
17656 				match(ERROR);
17657 				}
17658 				break;
17659 			case DEFAULT:
17660 				{
17661 				setState(1847);
17662 				match(DEFAULT);
17663 				setState(1848);
17664 				literals();
17665 				}
17666 				break;
17667 			default:
17668 				throw new NoViableAltException(this);
17669 			}
17670 			setState(1851);
17671 			match(ON);
17672 			setState(1852);
17673 			_la = _input.LA(1);
17674 			if ( !(_la==EMPTY || _la==ERROR) ) {
17675 			_errHandler.recoverInline(this);
17676 			}
17677 			else {
17678 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
17679 				_errHandler.reportMatch(this);
17680 				consume();
17681 			}
17682 			}
17683 		}
17684 		catch (RecognitionException re) {
17685 			_localctx.exception = re;
17686 			_errHandler.reportError(this, re);
17687 			_errHandler.recover(this, re);
17688 		}
17689 		finally {
17690 			exitRule();
17691 		}
17692 		return _localctx;
17693 	}
17694 
17695 	public static class ColumnRefContext extends ParserRuleContext {
17696 		public List<IdentifierContext> identifier() {
17697 			return getRuleContexts(IdentifierContext.class);
17698 		}
17699 		public IdentifierContext identifier(int i) {
17700 			return getRuleContext(IdentifierContext.class,i);
17701 		}
17702 		public List<TerminalNode> DOT_() { return getTokens(HiveStatementParser.DOT_); }
17703 		public TerminalNode DOT_(int i) {
17704 			return getToken(HiveStatementParser.DOT_, i);
17705 		}
17706 		public ColumnRefContext(ParserRuleContext parent, int invokingState) {
17707 			super(parent, invokingState);
17708 		}
17709 		@Override public int getRuleIndex() { return RULE_columnRef; }
17710 		@Override
17711 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
17712 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitColumnRef(this);
17713 			else return visitor.visitChildren(this);
17714 		}
17715 	}
17716 
17717 	public final ColumnRefContext columnRef() throws RecognitionException {
17718 		ColumnRefContext _localctx = new ColumnRefContext(_ctx, getState());
17719 		enterRule(_localctx, 332, RULE_columnRef);
17720 		try {
17721 			enterOuterAlt(_localctx, 1);
17722 			{
17723 			setState(1854);
17724 			identifier();
17725 			setState(1857);
17726 			_errHandler.sync(this);
17727 			switch ( getInterpreter().adaptivePredict(_input,205,_ctx) ) {
17728 			case 1:
17729 				{
17730 				setState(1855);
17731 				match(DOT_);
17732 				setState(1856);
17733 				identifier();
17734 				}
17735 				break;
17736 			}
17737 			setState(1861);
17738 			_errHandler.sync(this);
17739 			switch ( getInterpreter().adaptivePredict(_input,206,_ctx) ) {
17740 			case 1:
17741 				{
17742 				setState(1859);
17743 				match(DOT_);
17744 				setState(1860);
17745 				identifier();
17746 				}
17747 				break;
17748 			}
17749 			}
17750 		}
17751 		catch (RecognitionException re) {
17752 			_localctx.exception = re;
17753 			_errHandler.reportError(this, re);
17754 			_errHandler.recover(this, re);
17755 		}
17756 		finally {
17757 			exitRule();
17758 		}
17759 		return _localctx;
17760 	}
17761 
17762 	public static class ColumnRefListContext extends ParserRuleContext {
17763 		public List<ColumnRefContext> columnRef() {
17764 			return getRuleContexts(ColumnRefContext.class);
17765 		}
17766 		public ColumnRefContext columnRef(int i) {
17767 			return getRuleContext(ColumnRefContext.class,i);
17768 		}
17769 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
17770 		public TerminalNode COMMA_(int i) {
17771 			return getToken(HiveStatementParser.COMMA_, i);
17772 		}
17773 		public ColumnRefListContext(ParserRuleContext parent, int invokingState) {
17774 			super(parent, invokingState);
17775 		}
17776 		@Override public int getRuleIndex() { return RULE_columnRefList; }
17777 		@Override
17778 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
17779 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitColumnRefList(this);
17780 			else return visitor.visitChildren(this);
17781 		}
17782 	}
17783 
17784 	public final ColumnRefListContext columnRefList() throws RecognitionException {
17785 		ColumnRefListContext _localctx = new ColumnRefListContext(_ctx, getState());
17786 		enterRule(_localctx, 334, RULE_columnRefList);
17787 		int _la;
17788 		try {
17789 			enterOuterAlt(_localctx, 1);
17790 			{
17791 			setState(1863);
17792 			columnRef();
17793 			setState(1868);
17794 			_errHandler.sync(this);
17795 			_la = _input.LA(1);
17796 			while (_la==COMMA_) {
17797 				{
17798 				{
17799 				setState(1864);
17800 				match(COMMA_);
17801 				setState(1865);
17802 				columnRef();
17803 				}
17804 				}
17805 				setState(1870);
17806 				_errHandler.sync(this);
17807 				_la = _input.LA(1);
17808 			}
17809 			}
17810 		}
17811 		catch (RecognitionException re) {
17812 			_localctx.exception = re;
17813 			_errHandler.reportError(this, re);
17814 			_errHandler.recover(this, re);
17815 		}
17816 		finally {
17817 			exitRule();
17818 		}
17819 		return _localctx;
17820 	}
17821 
17822 	public static class FunctionCallContext extends ParserRuleContext {
17823 		public AggregationFunctionContext aggregationFunction() {
17824 			return getRuleContext(AggregationFunctionContext.class,0);
17825 		}
17826 		public SpecialFunctionContext specialFunction() {
17827 			return getRuleContext(SpecialFunctionContext.class,0);
17828 		}
17829 		public RegularFunctionContext regularFunction() {
17830 			return getRuleContext(RegularFunctionContext.class,0);
17831 		}
17832 		public JsonFunctionContext jsonFunction() {
17833 			return getRuleContext(JsonFunctionContext.class,0);
17834 		}
17835 		public UdfFunctionContext udfFunction() {
17836 			return getRuleContext(UdfFunctionContext.class,0);
17837 		}
17838 		public FunctionCallContext(ParserRuleContext parent, int invokingState) {
17839 			super(parent, invokingState);
17840 		}
17841 		@Override public int getRuleIndex() { return RULE_functionCall; }
17842 		@Override
17843 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
17844 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFunctionCall(this);
17845 			else return visitor.visitChildren(this);
17846 		}
17847 	}
17848 
17849 	public final FunctionCallContext functionCall() throws RecognitionException {
17850 		FunctionCallContext _localctx = new FunctionCallContext(_ctx, getState());
17851 		enterRule(_localctx, 336, RULE_functionCall);
17852 		try {
17853 			setState(1876);
17854 			_errHandler.sync(this);
17855 			switch ( getInterpreter().adaptivePredict(_input,208,_ctx) ) {
17856 			case 1:
17857 				enterOuterAlt(_localctx, 1);
17858 				{
17859 				setState(1871);
17860 				aggregationFunction();
17861 				}
17862 				break;
17863 			case 2:
17864 				enterOuterAlt(_localctx, 2);
17865 				{
17866 				setState(1872);
17867 				specialFunction();
17868 				}
17869 				break;
17870 			case 3:
17871 				enterOuterAlt(_localctx, 3);
17872 				{
17873 				setState(1873);
17874 				regularFunction();
17875 				}
17876 				break;
17877 			case 4:
17878 				enterOuterAlt(_localctx, 4);
17879 				{
17880 				setState(1874);
17881 				jsonFunction();
17882 				}
17883 				break;
17884 			case 5:
17885 				enterOuterAlt(_localctx, 5);
17886 				{
17887 				setState(1875);
17888 				udfFunction();
17889 				}
17890 				break;
17891 			}
17892 		}
17893 		catch (RecognitionException re) {
17894 			_localctx.exception = re;
17895 			_errHandler.reportError(this, re);
17896 			_errHandler.recover(this, re);
17897 		}
17898 		finally {
17899 			exitRule();
17900 		}
17901 		return _localctx;
17902 	}
17903 
17904 	public static class UdfFunctionContext extends ParserRuleContext {
17905 		public FunctionNameContext functionName() {
17906 			return getRuleContext(FunctionNameContext.class,0);
17907 		}
17908 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
17909 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
17910 		public List<ExprContext> expr() {
17911 			return getRuleContexts(ExprContext.class);
17912 		}
17913 		public ExprContext expr(int i) {
17914 			return getRuleContext(ExprContext.class,i);
17915 		}
17916 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
17917 		public TerminalNode COMMA_(int i) {
17918 			return getToken(HiveStatementParser.COMMA_, i);
17919 		}
17920 		public UdfFunctionContext(ParserRuleContext parent, int invokingState) {
17921 			super(parent, invokingState);
17922 		}
17923 		@Override public int getRuleIndex() { return RULE_udfFunction; }
17924 		@Override
17925 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
17926 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUdfFunction(this);
17927 			else return visitor.visitChildren(this);
17928 		}
17929 	}
17930 
17931 	public final UdfFunctionContext udfFunction() throws RecognitionException {
17932 		UdfFunctionContext _localctx = new UdfFunctionContext(_ctx, getState());
17933 		enterRule(_localctx, 338, RULE_udfFunction);
17934 		int _la;
17935 		try {
17936 			enterOuterAlt(_localctx, 1);
17937 			{
17938 			setState(1878);
17939 			functionName();
17940 			setState(1879);
17941 			match(LP_);
17942 			setState(1891);
17943 			_errHandler.sync(this);
17944 			switch ( getInterpreter().adaptivePredict(_input,211,_ctx) ) {
17945 			case 1:
17946 				{
17947 				setState(1881);
17948 				_errHandler.sync(this);
17949 				_la = _input.LA(1);
17950 				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NOT_) | (1L << TILDE_) | (1L << PLUS_) | (1L << MINUS_) | (1L << LP_) | (1L << LBE_) | (1L << QUESTION_) | (1L << AT_) | (1L << MAX) | (1L << MIN) | (1L << SUM) | (1L << COUNT) | (1L << GROUP_CONCAT) | (1L << CAST) | (1L << POSITION) | (1L << SUBSTRING) | (1L << SUBSTR) | (1L << EXTRACT) | (1L << TRIM) | (1L << LAST_DAY) | (1L << TRADITIONAL) | (1L << TREE) | (1L << MYSQL_MAIN) | (1L << MYSQL_ADMIN) | (1L << INSTANT))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (INPLACE - 64)) | (1L << (COPY - 64)) | (1L << (UL_BINARY - 64)) | (1L << (AUTOCOMMIT - 64)) | (1L << (INNODB - 64)) | (1L << (REDO_LOG - 64)) | (1L << (ACCOUNT - 64)) | (1L << (ACTION - 64)) | (1L << (ACTIVE - 64)) | (1L << (ADMIN - 64)) | (1L << (AFTER - 64)) | (1L << (AGAINST - 64)) | (1L << (AGGREGATE - 64)) | (1L << (ALGORITHM - 64)) | (1L << (ALWAYS - 64)) | (1L << (ANY - 64)) | (1L << (ARRAY - 64)) | (1L << (ASCII - 64)) | (1L << (AT - 64)) | (1L << (ATTRIBUTE - 64)) | (1L << (AUTOEXTEND_SIZE - 64)) | (1L << (AUTO_INCREMENT - 64)) | (1L << (AVG - 64)) | (1L << (BIT_XOR - 64)) | (1L << (AVG_ROW_LENGTH - 64)) | (1L << (BACKUP - 64)) | (1L << (BEGIN - 64)) | (1L << (BINARY - 64)) | (1L << (BINLOG - 64)) | (1L << (BIT - 64)) | (1L << (BLOCK - 64)) | (1L << (BOOL - 64)) | (1L << (BOOLEAN - 64)) | (1L << (BTREE - 64)) | (1L << (BUCKETS - 64)) | (1L << (BYTE - 64)) | (1L << (CACHE - 64)) | (1L << (CASCADED - 64)) | (1L << (CASE - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CHAIN - 64)) | (1L << (CHANGED - 64)) | (1L << (CHANNEL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CHAR - 128)) | (1L << (CHARSET - 128)) | (1L << (CHECKSUM - 128)) | (1L << (CIPHER - 128)) | (1L << (CLASS_ORIGIN - 128)) | (1L << (CLIENT - 128)) | (1L << (CLONE - 128)) | (1L << (CLOSE - 128)) | (1L << (COALESCE - 128)) | (1L << (CODE - 128)) | (1L << (COLLATION - 128)) | (1L << (COLUMNS - 128)) | (1L << (COLUMN_FORMAT - 128)) | (1L << (COLUMN_NAME - 128)) | (1L << (COMMENT - 128)) | (1L << (COMMIT - 128)) | (1L << (COMMITTED - 128)) | (1L << (COMPACT - 128)) | (1L << (COMPLETION - 128)) | (1L << (COMPONENT - 128)) | (1L << (COMPRESSED - 128)) | (1L << (COMPRESSION - 128)) | (1L << (CONCURRENT - 128)) | (1L << (CONNECTION - 128)) | (1L << (CONSISTENT - 128)) | (1L << (CONSTRAINT_CATALOG - 128)) | (1L << (CONSTRAINT_NAME - 128)) | (1L << (CONSTRAINT_SCHEMA - 128)) | (1L << (CONTAINS - 128)) | (1L << (CONTEXT - 128)) | (1L << (CONVERT - 128)) | (1L << (CPU - 128)) | (1L << (CREATE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATAFILE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME - 128)) | (1L << (DAY - 128)) | (1L << (DAY_MINUTE - 128)) | (1L << (DEALLOCATE - 128)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (DEFAULT_AUTH - 196)) | (1L << (DEFINER - 196)) | (1L << (DEFINITION - 196)) | (1L << (DELAY_KEY_WRITE - 196)) | (1L << (DENSE_RANK - 196)) | (1L << (DESCRIPTION - 196)) | (1L << (DIAGNOSTICS - 196)) | (1L << (DIRECTORY - 196)) | (1L << (DISABLE - 196)) | (1L << (DISCARD - 196)) | (1L << (DISK - 196)) | (1L << (DO - 196)) | (1L << (DUMPFILE - 196)) | (1L << (DUPLICATE - 196)) | (1L << (DYNAMIC - 196)) | (1L << (ENABLE - 196)) | (1L << (ENCRYPTION - 196)) | (1L << (END - 196)) | (1L << (ENDS - 196)) | (1L << (ENFORCED - 196)) | (1L << (ENGINE - 196)) | (1L << (ENGINES - 196)) | (1L << (ENGINE_ATTRIBUTE - 196)) | (1L << (ENUM - 196)) | (1L << (ERROR - 196)) | (1L << (ERRORS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVENT - 196)) | (1L << (EVENTS - 196)) | (1L << (EVERY - 196)) | (1L << (EXCHANGE - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXPANSION - 196)) | (1L << (EXPIRE - 196)) | (1L << (EXPORT - 196)) | (1L << (EXTENDED - 196)) | (1L << (EXTENT_SIZE - 196)) | (1L << (FAILED_LOGIN_ATTEMPTS - 196)) | (1L << (FALSE - 196)) | (1L << (FAST - 196)) | (1L << (FAULTS - 196)))) != 0) || ((((_la - 260)) & ~0x3f) == 0 && ((1L << (_la - 260)) & ((1L << (FILE - 260)) | (1L << (FILE_BLOCK_SIZE - 260)) | (1L << (FILTER - 260)) | (1L << (FIRST - 260)) | (1L << (FIRST_VALUE - 260)) | (1L << (FIXED - 260)) | (1L << (FLUSH - 260)) | (1L << (FOLLOWING - 260)) | (1L << (FOLLOWS - 260)) | (1L << (FORMAT - 260)) | (1L << (FOUND - 260)) | (1L << (FULL - 260)) | (1L << (GENERAL - 260)) | (1L << (GEOMETRY - 260)) | (1L << (GEOMETRYCOLLECTION - 260)) | (1L << (GET_FORMAT - 260)) | (1L << (GET_MASTER_PUBLIC_KEY - 260)) | (1L << (GLOBAL - 260)) | (1L << (GRANTS - 260)) | (1L << (GROUP_REPLICATION - 260)) | (1L << (HANDLER - 260)) | (1L << (HASH - 260)) | (1L << (HELP - 260)) | (1L << (HISTOGRAM - 260)) | (1L << (HISTORY - 260)) | (1L << (HOST - 260)) | (1L << (HOSTS - 260)) | (1L << (HOUR - 260)) | (1L << (IDENTIFIED - 260)) | (1L << (IF - 260)) | (1L << (IGNORE_SERVER_IDS - 260)) | (1L << (IMPORT - 260)) | (1L << (INACTIVE - 260)) | (1L << (INDEXES - 260)) | (1L << (INITIAL_SIZE - 260)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (INSERT - 326)) | (1L << (INSERT_METHOD - 326)) | (1L << (INSTALL - 326)) | (1L << (INSTANCE - 326)) | (1L << (INTERVAL - 326)) | (1L << (INVISIBLE - 326)) | (1L << (INVOKER - 326)) | (1L << (IO - 326)) | (1L << (IPC - 326)) | (1L << (ISOLATION - 326)) | (1L << (ISSUER - 326)) | (1L << (JSON - 326)) | (1L << (JSON_TABLE - 326)) | (1L << (JSON_VALUE - 326)) | (1L << (KEY - 326)) | (1L << (KEY_BLOCK_SIZE - 326)) | (1L << (LAG - 326)) | (1L << (LANGUAGE - 326)) | (1L << (LAST - 326)) | (1L << (LAST_VALUE - 326)) | (1L << (LEAD - 326)) | (1L << (LEAVES - 326)) | (1L << (LEFT - 326)) | (1L << (LESS - 326)) | (1L << (LEVEL - 326)) | (1L << (LINESTRING - 326)) | (1L << (LIST - 326)) | (1L << (LOCAL - 326)) | (1L << (LOCALTIME - 326)) | (1L << (LOCALTIMESTAMP - 326)) | (1L << (LOCKED - 326)) | (1L << (LOCKS - 326)) | (1L << (LOGFILE - 326)) | (1L << (LOGS - 326)))) != 0) || ((((_la - 391)) & ~0x3f) == 0 && ((1L << (_la - 391)) & ((1L << (MASTER - 391)) | (1L << (MASTER_AUTO_POSITION - 391)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 391)) | (1L << (MASTER_CONNECT_RETRY - 391)) | (1L << (MASTER_DELAY - 391)) | (1L << (MASTER_HEARTBEAT_PERIOD - 391)) | (1L << (MASTER_HOST - 391)) | (1L << (MASTER_LOG_FILE - 391)) | (1L << (MASTER_LOG_POS - 391)) | (1L << (MASTER_PASSWORD - 391)) | (1L << (MASTER_PORT - 391)) | (1L << (MASTER_PUBLIC_KEY_PATH - 391)) | (1L << (MASTER_RETRY_COUNT - 391)) | (1L << (MASTER_SERVER_ID - 391)) | (1L << (MASTER_SSL - 391)) | (1L << (MASTER_SSL_CA - 391)) | (1L << (MASTER_SSL_CAPATH - 391)) | (1L << (MASTER_SSL_CERT - 391)) | (1L << (MASTER_SSL_CIPHER - 391)) | (1L << (MASTER_SSL_CRL - 391)) | (1L << (MASTER_SSL_CRLPATH - 391)) | (1L << (MASTER_SSL_KEY - 391)) | (1L << (MASTER_TLS_CIPHERSUITES - 391)) | (1L << (MASTER_TLS_VERSION - 391)) | (1L << (MASTER_USER - 391)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 391)) | (1L << (MATCH - 391)) | (1L << (MAXVALUE - 391)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 391)) | (1L << (MAX_QUERIES_PER_HOUR - 391)) | (1L << (MAX_ROWS - 391)) | (1L << (MAX_SIZE - 391)) | (1L << (MAX_UPDATES_PER_HOUR - 391)) | (1L << (MAX_USER_CONNECTIONS - 391)) | (1L << (MEDIUM - 391)) | (1L << (MEMBER - 391)) | (1L << (MEMORY - 391)) | (1L << (MERGE - 391)) | (1L << (MESSAGE_TEXT - 391)) | (1L << (MICROSECOND - 391)) | (1L << (MIGRATE - 391)) | (1L << (MINUTE - 391)) | (1L << (MIN_ROWS - 391)) | (1L << (MOD - 391)) | (1L << (MODE - 391)) | (1L << (MODIFY - 391)) | (1L << (MONTH - 391)) | (1L << (MULTILINESTRING - 391)) | (1L << (MULTIPOINT - 391)) | (1L << (MULTIPOLYGON - 391)) | (1L << (MUTEX - 391)) | (1L << (MYSQL_ERRNO - 391)) | (1L << (NAME - 391)) | (1L << (NAMES - 391)) | (1L << (NATIONAL - 391)))) != 0) || ((((_la - 458)) & ~0x3f) == 0 && ((1L << (_la - 458)) & ((1L << (NCHAR - 458)) | (1L << (NDBCLUSTER - 458)) | (1L << (NESTED - 458)) | (1L << (NETWORK_NAMESPACE - 458)) | (1L << (NEVER - 458)) | (1L << (NEW - 458)) | (1L << (NEXT - 458)) | (1L << (NO - 458)) | (1L << (NODEGROUP - 458)) | (1L << (NONE - 458)) | (1L << (NOT - 458)) | (1L << (NOWAIT - 458)) | (1L << (NO_WAIT - 458)) | (1L << (NTH_VALUE - 458)) | (1L << (NTILE - 458)) | (1L << (NULL - 458)) | (1L << (NULLS - 458)) | (1L << (NUMBER - 458)) | (1L << (NVARCHAR - 458)) | (1L << (OFF - 458)) | (1L << (OFFSET - 458)) | (1L << (OJ - 458)) | (1L << (OLD - 458)) | (1L << (ONE - 458)) | (1L << (ONLY - 458)) | (1L << (OPEN - 458)) | (1L << (OPTIONAL - 458)) | (1L << (OPTIONS - 458)) | (1L << (ORDINALITY - 458)) | (1L << (ORGANIZATION - 458)) | (1L << (OTHERS - 458)) | (1L << (OWNER - 458)) | (1L << (PACK_KEYS - 458)) | (1L << (PAGE - 458)) | (1L << (PARSER - 458)) | (1L << (PARTIAL - 458)) | (1L << (PARTITIONING - 458)) | (1L << (PARTITIONS - 458)) | (1L << (PASSWORD - 458)) | (1L << (PASSWORD_LOCK_TIME - 458)) | (1L << (PATH - 458)) | (1L << (PERCENT_RANK - 458)) | (1L << (PERSIST - 458)) | (1L << (PERSIST_ONLY - 458)) | (1L << (PHASE - 458)) | (1L << (PLUGIN - 458)) | (1L << (PLUGINS - 458)))) != 0) || ((((_la - 522)) & ~0x3f) == 0 && ((1L << (_la - 522)) & ((1L << (PLUGIN_DIR - 522)) | (1L << (POINT - 522)) | (1L << (POLYGON - 522)) | (1L << (PORT - 522)) | (1L << (PRECEDES - 522)) | (1L << (PRECEDING - 522)) | (1L << (PREPARE - 522)) | (1L << (PRESERVE - 522)) | (1L << (PREV - 522)) | (1L << (PRIMARY - 522)) | (1L << (PRIVILEGES - 522)) | (1L << (PRIVILEGE_CHECKS_USER - 522)) | (1L << (PROCESS - 522)) | (1L << (PROCESSLIST - 522)) | (1L << (PROFILE - 522)) | (1L << (PROFILES - 522)) | (1L << (PROXY - 522)) | (1L << (QUARTER - 522)) | (1L << (QUERY - 522)) | (1L << (QUICK - 522)) | (1L << (RANDOM - 522)) | (1L << (RANK - 522)) | (1L << (READ_ONLY - 522)) | (1L << (REBUILD - 522)) | (1L << (RECOVER - 522)) | (1L << (REDO_BUFFER_SIZE - 522)) | (1L << (REDUNDANT - 522)) | (1L << (REFERENCE - 522)) | (1L << (RELAY - 522)) | (1L << (RELAYLOG - 522)) | (1L << (RELAY_LOG_FILE - 522)) | (1L << (RELAY_LOG_POS - 522)) | (1L << (RELAY_THREAD - 522)) | (1L << (RELOAD - 522)) | (1L << (REMOVE - 522)) | (1L << (REORGANIZE - 522)) | (1L << (REPAIR - 522)) | (1L << (REPEAT - 522)) | (1L << (REPEATABLE - 522)) | (1L << (REPLACE - 522)) | (1L << (REPLICATE_DO_DB - 522)) | (1L << (REPLICATE_DO_TABLE - 522)) | (1L << (REPLICATE_IGNORE_DB - 522)) | (1L << (REPLICATE_IGNORE_TABLE - 522)) | (1L << (REPLICATE_REWRITE_DB - 522)) | (1L << (REPLICATE_WILD_DO_TABLE - 522)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 522)) | (1L << (REPLICATION - 522)))) != 0) || ((((_la - 586)) & ~0x3f) == 0 && ((1L << (_la - 586)) & ((1L << (REQUIRE_ROW_FORMAT - 586)) | (1L << (RESET - 586)) | (1L << (RESOURCE - 586)) | (1L << (RESPECT - 586)) | (1L << (RESTART - 586)) | (1L << (RESTORE - 586)) | (1L << (RESUME - 586)) | (1L << (RETAIN - 586)) | (1L << (RETURNED_SQLSTATE - 586)) | (1L << (RETURNING - 586)) | (1L << (RETURNS - 586)) | (1L << (REUSE - 586)) | (1L << (REVERSE - 586)) | (1L << (RIGHT - 586)) | (1L << (ROLE - 586)) | (1L << (ROLLBACK - 586)) | (1L << (ROLLUP - 586)) | (1L << (ROTATE - 586)) | (1L << (ROUTINE - 586)) | (1L << (ROW - 586)) | (1L << (ROW_COUNT - 586)) | (1L << (ROW_FORMAT - 586)) | (1L << (ROW_NUMBER - 586)) | (1L << (RTREE - 586)) | (1L << (SAVEPOINT - 586)) | (1L << (SCHEDULE - 586)) | (1L << (SCHEMA - 586)) | (1L << (SCHEMA_NAME - 586)) | (1L << (SECOND - 586)) | (1L << (SECONDARY - 586)) | (1L << (SECONDARY_ENGINE - 586)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 586)) | (1L << (SECONDARY_LOAD - 586)) | (1L << (SECONDARY_UNLOAD - 586)) | (1L << (SECURITY - 586)) | (1L << (SERIAL - 586)) | (1L << (SERIALIZABLE - 586)) | (1L << (SERVER - 586)) | (1L << (SESSION - 586)) | (1L << (SHARE - 586)) | (1L << (SHUTDOWN - 586)) | (1L << (SIGNED - 586)) | (1L << (SIMPLE - 586)) | (1L << (SLAVE - 586)) | (1L << (SLOW - 586)))) != 0) || ((((_la - 650)) & ~0x3f) == 0 && ((1L << (_la - 650)) & ((1L << (SNAPSHOT - 650)) | (1L << (SOCKET - 650)) | (1L << (SONAME - 650)) | (1L << (SOUNDS - 650)) | (1L << (SOURCE - 650)) | (1L << (SQL_AFTER_GTIDS - 650)) | (1L << (SQL_AFTER_MTS_GAPS - 650)) | (1L << (SQL_BEFORE_GTIDS - 650)) | (1L << (SQL_BUFFER_RESULT - 650)) | (1L << (SQL_NO_CACHE - 650)) | (1L << (SQL_THREAD - 650)) | (1L << (SRID - 650)) | (1L << (STACKED - 650)) | (1L << (START - 650)) | (1L << (STARTS - 650)) | (1L << (STATS_AUTO_RECALC - 650)) | (1L << (STATS_PERSISTENT - 650)) | (1L << (STATS_SAMPLE_PAGES - 650)) | (1L << (STATUS - 650)) | (1L << (STOP - 650)) | (1L << (STORAGE - 650)) | (1L << (STREAM - 650)) | (1L << (STRING - 650)) | (1L << (SUBCLASS_ORIGIN - 650)) | (1L << (SUBJECT - 650)) | (1L << (SUBPARTITION - 650)) | (1L << (SUBPARTITIONS - 650)) | (1L << (SUPER - 650)) | (1L << (SUSPEND - 650)) | (1L << (SWAPS - 650)) | (1L << (SWITCHES - 650)) | (1L << (SYSTEM - 650)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUE - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VALUES - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (JSON_ARRAY - 787)) | (1L << (JSON_ARRAY_APPEND - 787)) | (1L << (JSON_ARRAY_INSERT - 787)) | (1L << (JSON_CONTAINS - 787)) | (1L << (JSON_CONTAINS_PATH - 787)) | (1L << (JSON_DEPTH - 787)) | (1L << (JSON_EXTRACT - 787)) | (1L << (JSON_INSERT - 787)) | (1L << (JSON_KEYS - 787)) | (1L << (JSON_LENGTH - 787)) | (1L << (JSON_MERGE - 787)) | (1L << (JSON_MERGE_PATCH - 787)) | (1L << (JSON_MERGE_PRESERVE - 787)) | (1L << (JSON_OBJECT - 787)) | (1L << (JSON_OVERLAPS - 787)) | (1L << (JSON_PRETTY - 787)) | (1L << (JSON_QUOTE - 787)) | (1L << (JSON_REMOVE - 787)) | (1L << (JSON_REPLACE - 787)) | (1L << (JSON_SCHEMA_VALID - 787)) | (1L << (JSON_SCHEMA_VALIDATION_REPORT - 787)) | (1L << (JSON_SEARCH - 787)) | (1L << (JSON_SET - 787)) | (1L << (JSON_STORAGE_FREE - 787)) | (1L << (JSON_STORAGE_SIZE - 787)) | (1L << (JSON_TYPE - 787)) | (1L << (JSON_UNQUOTE - 787)) | (1L << (JSON_VALID - 787)) | (1L << (SINGLE_QUOTED_TEXT - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (NCHAR_TEXT - 787)) | (1L << (UNDERSCORE_CHARSET - 787)) | (1L << (NUMBER_ - 787)))) != 0) || ((((_la - 851)) & ~0x3f) == 0 && ((1L << (_la - 851)) & ((1L << (HEX_DIGIT_ - 851)) | (1L << (BIT_NUM_ - 851)) | (1L << (IDENTIFIER_ - 851)) | (1L << (IP_ADDRESS - 851)))) != 0)) {
17951 					{
17952 					setState(1880);
17953 					expr(0);
17954 					}
17955 				}
17956 
17957 				}
17958 				break;
17959 			case 2:
17960 				{
17961 				setState(1883);
17962 				expr(0);
17963 				setState(1888);
17964 				_errHandler.sync(this);
17965 				_la = _input.LA(1);
17966 				while (_la==COMMA_) {
17967 					{
17968 					{
17969 					setState(1884);
17970 					match(COMMA_);
17971 					setState(1885);
17972 					expr(0);
17973 					}
17974 					}
17975 					setState(1890);
17976 					_errHandler.sync(this);
17977 					_la = _input.LA(1);
17978 				}
17979 				}
17980 				break;
17981 			}
17982 			setState(1893);
17983 			match(RP_);
17984 			}
17985 		}
17986 		catch (RecognitionException re) {
17987 			_localctx.exception = re;
17988 			_errHandler.reportError(this, re);
17989 			_errHandler.recover(this, re);
17990 		}
17991 		finally {
17992 			exitRule();
17993 		}
17994 		return _localctx;
17995 	}
17996 
17997 	public static class AggregationFunctionContext extends ParserRuleContext {
17998 		public AggregationFunctionNameContext aggregationFunctionName() {
17999 			return getRuleContext(AggregationFunctionNameContext.class,0);
18000 		}
18001 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
18002 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
18003 		public DistinctContext distinct() {
18004 			return getRuleContext(DistinctContext.class,0);
18005 		}
18006 		public List<ExprContext> expr() {
18007 			return getRuleContexts(ExprContext.class);
18008 		}
18009 		public ExprContext expr(int i) {
18010 			return getRuleContext(ExprContext.class,i);
18011 		}
18012 		public TerminalNode ASTERISK_() { return getToken(HiveStatementParser.ASTERISK_, 0); }
18013 		public CollateClauseContext collateClause() {
18014 			return getRuleContext(CollateClauseContext.class,0);
18015 		}
18016 		public OverClauseContext overClause() {
18017 			return getRuleContext(OverClauseContext.class,0);
18018 		}
18019 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
18020 		public TerminalNode COMMA_(int i) {
18021 			return getToken(HiveStatementParser.COMMA_, i);
18022 		}
18023 		public AggregationFunctionContext(ParserRuleContext parent, int invokingState) {
18024 			super(parent, invokingState);
18025 		}
18026 		@Override public int getRuleIndex() { return RULE_aggregationFunction; }
18027 		@Override
18028 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
18029 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAggregationFunction(this);
18030 			else return visitor.visitChildren(this);
18031 		}
18032 	}
18033 
18034 	public final AggregationFunctionContext aggregationFunction() throws RecognitionException {
18035 		AggregationFunctionContext _localctx = new AggregationFunctionContext(_ctx, getState());
18036 		enterRule(_localctx, 340, RULE_aggregationFunction);
18037 		int _la;
18038 		try {
18039 			enterOuterAlt(_localctx, 1);
18040 			{
18041 			setState(1895);
18042 			aggregationFunctionName();
18043 			setState(1896);
18044 			match(LP_);
18045 			setState(1898);
18046 			_errHandler.sync(this);
18047 			_la = _input.LA(1);
18048 			if (_la==DISTINCT) {
18049 				{
18050 				setState(1897);
18051 				distinct();
18052 				}
18053 			}
18054 
18055 			setState(1909);
18056 			_errHandler.sync(this);
18057 			switch (_input.LA(1)) {
18058 			case NOT_:
18059 			case TILDE_:
18060 			case PLUS_:
18061 			case MINUS_:
18062 			case LP_:
18063 			case LBE_:
18064 			case QUESTION_:
18065 			case AT_:
18066 			case MAX:
18067 			case MIN:
18068 			case SUM:
18069 			case COUNT:
18070 			case GROUP_CONCAT:
18071 			case CAST:
18072 			case POSITION:
18073 			case SUBSTRING:
18074 			case SUBSTR:
18075 			case EXTRACT:
18076 			case TRIM:
18077 			case LAST_DAY:
18078 			case TRADITIONAL:
18079 			case TREE:
18080 			case MYSQL_MAIN:
18081 			case MYSQL_ADMIN:
18082 			case INSTANT:
18083 			case INPLACE:
18084 			case COPY:
18085 			case UL_BINARY:
18086 			case AUTOCOMMIT:
18087 			case INNODB:
18088 			case REDO_LOG:
18089 			case ACCOUNT:
18090 			case ACTION:
18091 			case ACTIVE:
18092 			case ADMIN:
18093 			case AFTER:
18094 			case AGAINST:
18095 			case AGGREGATE:
18096 			case ALGORITHM:
18097 			case ALWAYS:
18098 			case ANY:
18099 			case ARRAY:
18100 			case ASCII:
18101 			case AT:
18102 			case ATTRIBUTE:
18103 			case AUTOEXTEND_SIZE:
18104 			case AUTO_INCREMENT:
18105 			case AVG:
18106 			case BIT_XOR:
18107 			case AVG_ROW_LENGTH:
18108 			case BACKUP:
18109 			case BEGIN:
18110 			case BINARY:
18111 			case BINLOG:
18112 			case BIT:
18113 			case BLOCK:
18114 			case BOOL:
18115 			case BOOLEAN:
18116 			case BTREE:
18117 			case BUCKETS:
18118 			case BYTE:
18119 			case CACHE:
18120 			case CASCADED:
18121 			case CASE:
18122 			case CATALOG_NAME:
18123 			case CHAIN:
18124 			case CHANGED:
18125 			case CHANNEL:
18126 			case CHAR:
18127 			case CHARSET:
18128 			case CHECKSUM:
18129 			case CIPHER:
18130 			case CLASS_ORIGIN:
18131 			case CLIENT:
18132 			case CLONE:
18133 			case CLOSE:
18134 			case COALESCE:
18135 			case CODE:
18136 			case COLLATION:
18137 			case COLUMNS:
18138 			case COLUMN_FORMAT:
18139 			case COLUMN_NAME:
18140 			case COMMENT:
18141 			case COMMIT:
18142 			case COMMITTED:
18143 			case COMPACT:
18144 			case COMPLETION:
18145 			case COMPONENT:
18146 			case COMPRESSED:
18147 			case COMPRESSION:
18148 			case CONCURRENT:
18149 			case CONNECTION:
18150 			case CONSISTENT:
18151 			case CONSTRAINT_CATALOG:
18152 			case CONSTRAINT_NAME:
18153 			case CONSTRAINT_SCHEMA:
18154 			case CONTAINS:
18155 			case CONTEXT:
18156 			case CONVERT:
18157 			case CPU:
18158 			case CREATE:
18159 			case CUME_DIST:
18160 			case CURRENT:
18161 			case CURRENT_DATE:
18162 			case CURRENT_TIME:
18163 			case CURRENT_TIMESTAMP:
18164 			case CURRENT_USER:
18165 			case CURSOR_NAME:
18166 			case DATA:
18167 			case DATABASE:
18168 			case DATAFILE:
18169 			case DATE:
18170 			case DATETIME:
18171 			case DAY:
18172 			case DAY_MINUTE:
18173 			case DEALLOCATE:
18174 			case DEFAULT_AUTH:
18175 			case DEFINER:
18176 			case DEFINITION:
18177 			case DELAY_KEY_WRITE:
18178 			case DENSE_RANK:
18179 			case DESCRIPTION:
18180 			case DIAGNOSTICS:
18181 			case DIRECTORY:
18182 			case DISABLE:
18183 			case DISCARD:
18184 			case DISK:
18185 			case DO:
18186 			case DUMPFILE:
18187 			case DUPLICATE:
18188 			case DYNAMIC:
18189 			case ENABLE:
18190 			case ENCRYPTION:
18191 			case END:
18192 			case ENDS:
18193 			case ENFORCED:
18194 			case ENGINE:
18195 			case ENGINES:
18196 			case ENGINE_ATTRIBUTE:
18197 			case ENUM:
18198 			case ERROR:
18199 			case ERRORS:
18200 			case ESCAPE:
18201 			case EVENT:
18202 			case EVENTS:
18203 			case EVERY:
18204 			case EXCHANGE:
18205 			case EXCLUDE:
18206 			case EXECUTE:
18207 			case EXISTS:
18208 			case EXPANSION:
18209 			case EXPIRE:
18210 			case EXPORT:
18211 			case EXTENDED:
18212 			case EXTENT_SIZE:
18213 			case FAILED_LOGIN_ATTEMPTS:
18214 			case FALSE:
18215 			case FAST:
18216 			case FAULTS:
18217 			case FILE:
18218 			case FILE_BLOCK_SIZE:
18219 			case FILTER:
18220 			case FIRST:
18221 			case FIRST_VALUE:
18222 			case FIXED:
18223 			case FLUSH:
18224 			case FOLLOWING:
18225 			case FOLLOWS:
18226 			case FORMAT:
18227 			case FOUND:
18228 			case FULL:
18229 			case GENERAL:
18230 			case GEOMETRY:
18231 			case GEOMETRYCOLLECTION:
18232 			case GET_FORMAT:
18233 			case GET_MASTER_PUBLIC_KEY:
18234 			case GLOBAL:
18235 			case GRANTS:
18236 			case GROUP_REPLICATION:
18237 			case HANDLER:
18238 			case HASH:
18239 			case HELP:
18240 			case HISTOGRAM:
18241 			case HISTORY:
18242 			case HOST:
18243 			case HOSTS:
18244 			case HOUR:
18245 			case IDENTIFIED:
18246 			case IF:
18247 			case IGNORE_SERVER_IDS:
18248 			case IMPORT:
18249 			case INACTIVE:
18250 			case INDEXES:
18251 			case INITIAL_SIZE:
18252 			case INSERT:
18253 			case INSERT_METHOD:
18254 			case INSTALL:
18255 			case INSTANCE:
18256 			case INTERVAL:
18257 			case INVISIBLE:
18258 			case INVOKER:
18259 			case IO:
18260 			case IPC:
18261 			case ISOLATION:
18262 			case ISSUER:
18263 			case JSON:
18264 			case JSON_TABLE:
18265 			case JSON_VALUE:
18266 			case KEY:
18267 			case KEY_BLOCK_SIZE:
18268 			case LAG:
18269 			case LANGUAGE:
18270 			case LAST:
18271 			case LAST_VALUE:
18272 			case LEAD:
18273 			case LEAVES:
18274 			case LEFT:
18275 			case LESS:
18276 			case LEVEL:
18277 			case LINESTRING:
18278 			case LIST:
18279 			case LOCAL:
18280 			case LOCALTIME:
18281 			case LOCALTIMESTAMP:
18282 			case LOCKED:
18283 			case LOCKS:
18284 			case LOGFILE:
18285 			case LOGS:
18286 			case MASTER:
18287 			case MASTER_AUTO_POSITION:
18288 			case MASTER_COMPRESSION_ALGORITHM:
18289 			case MASTER_CONNECT_RETRY:
18290 			case MASTER_DELAY:
18291 			case MASTER_HEARTBEAT_PERIOD:
18292 			case MASTER_HOST:
18293 			case MASTER_LOG_FILE:
18294 			case MASTER_LOG_POS:
18295 			case MASTER_PASSWORD:
18296 			case MASTER_PORT:
18297 			case MASTER_PUBLIC_KEY_PATH:
18298 			case MASTER_RETRY_COUNT:
18299 			case MASTER_SERVER_ID:
18300 			case MASTER_SSL:
18301 			case MASTER_SSL_CA:
18302 			case MASTER_SSL_CAPATH:
18303 			case MASTER_SSL_CERT:
18304 			case MASTER_SSL_CIPHER:
18305 			case MASTER_SSL_CRL:
18306 			case MASTER_SSL_CRLPATH:
18307 			case MASTER_SSL_KEY:
18308 			case MASTER_TLS_CIPHERSUITES:
18309 			case MASTER_TLS_VERSION:
18310 			case MASTER_USER:
18311 			case MASTER_ZSTD_COMPRESSION_LEVEL:
18312 			case MATCH:
18313 			case MAXVALUE:
18314 			case MAX_CONNECTIONS_PER_HOUR:
18315 			case MAX_QUERIES_PER_HOUR:
18316 			case MAX_ROWS:
18317 			case MAX_SIZE:
18318 			case MAX_UPDATES_PER_HOUR:
18319 			case MAX_USER_CONNECTIONS:
18320 			case MEDIUM:
18321 			case MEMBER:
18322 			case MEMORY:
18323 			case MERGE:
18324 			case MESSAGE_TEXT:
18325 			case MICROSECOND:
18326 			case MIGRATE:
18327 			case MINUTE:
18328 			case MIN_ROWS:
18329 			case MOD:
18330 			case MODE:
18331 			case MODIFY:
18332 			case MONTH:
18333 			case MULTILINESTRING:
18334 			case MULTIPOINT:
18335 			case MULTIPOLYGON:
18336 			case MUTEX:
18337 			case MYSQL_ERRNO:
18338 			case NAME:
18339 			case NAMES:
18340 			case NATIONAL:
18341 			case NCHAR:
18342 			case NDBCLUSTER:
18343 			case NESTED:
18344 			case NETWORK_NAMESPACE:
18345 			case NEVER:
18346 			case NEW:
18347 			case NEXT:
18348 			case NO:
18349 			case NODEGROUP:
18350 			case NONE:
18351 			case NOT:
18352 			case NOWAIT:
18353 			case NO_WAIT:
18354 			case NTH_VALUE:
18355 			case NTILE:
18356 			case NULL:
18357 			case NULLS:
18358 			case NUMBER:
18359 			case NVARCHAR:
18360 			case OFF:
18361 			case OFFSET:
18362 			case OJ:
18363 			case OLD:
18364 			case ONE:
18365 			case ONLY:
18366 			case OPEN:
18367 			case OPTIONAL:
18368 			case OPTIONS:
18369 			case ORDINALITY:
18370 			case ORGANIZATION:
18371 			case OTHERS:
18372 			case OWNER:
18373 			case PACK_KEYS:
18374 			case PAGE:
18375 			case PARSER:
18376 			case PARTIAL:
18377 			case PARTITIONING:
18378 			case PARTITIONS:
18379 			case PASSWORD:
18380 			case PASSWORD_LOCK_TIME:
18381 			case PATH:
18382 			case PERCENT_RANK:
18383 			case PERSIST:
18384 			case PERSIST_ONLY:
18385 			case PHASE:
18386 			case PLUGIN:
18387 			case PLUGINS:
18388 			case PLUGIN_DIR:
18389 			case POINT:
18390 			case POLYGON:
18391 			case PORT:
18392 			case PRECEDES:
18393 			case PRECEDING:
18394 			case PREPARE:
18395 			case PRESERVE:
18396 			case PREV:
18397 			case PRIMARY:
18398 			case PRIVILEGES:
18399 			case PRIVILEGE_CHECKS_USER:
18400 			case PROCESS:
18401 			case PROCESSLIST:
18402 			case PROFILE:
18403 			case PROFILES:
18404 			case PROXY:
18405 			case QUARTER:
18406 			case QUERY:
18407 			case QUICK:
18408 			case RANDOM:
18409 			case RANK:
18410 			case READ_ONLY:
18411 			case REBUILD:
18412 			case RECOVER:
18413 			case REDO_BUFFER_SIZE:
18414 			case REDUNDANT:
18415 			case REFERENCE:
18416 			case RELAY:
18417 			case RELAYLOG:
18418 			case RELAY_LOG_FILE:
18419 			case RELAY_LOG_POS:
18420 			case RELAY_THREAD:
18421 			case RELOAD:
18422 			case REMOVE:
18423 			case REORGANIZE:
18424 			case REPAIR:
18425 			case REPEAT:
18426 			case REPEATABLE:
18427 			case REPLACE:
18428 			case REPLICATE_DO_DB:
18429 			case REPLICATE_DO_TABLE:
18430 			case REPLICATE_IGNORE_DB:
18431 			case REPLICATE_IGNORE_TABLE:
18432 			case REPLICATE_REWRITE_DB:
18433 			case REPLICATE_WILD_DO_TABLE:
18434 			case REPLICATE_WILD_IGNORE_TABLE:
18435 			case REPLICATION:
18436 			case REQUIRE_ROW_FORMAT:
18437 			case RESET:
18438 			case RESOURCE:
18439 			case RESPECT:
18440 			case RESTART:
18441 			case RESTORE:
18442 			case RESUME:
18443 			case RETAIN:
18444 			case RETURNED_SQLSTATE:
18445 			case RETURNING:
18446 			case RETURNS:
18447 			case REUSE:
18448 			case REVERSE:
18449 			case RIGHT:
18450 			case ROLE:
18451 			case ROLLBACK:
18452 			case ROLLUP:
18453 			case ROTATE:
18454 			case ROUTINE:
18455 			case ROW:
18456 			case ROW_COUNT:
18457 			case ROW_FORMAT:
18458 			case ROW_NUMBER:
18459 			case RTREE:
18460 			case SAVEPOINT:
18461 			case SCHEDULE:
18462 			case SCHEMA:
18463 			case SCHEMA_NAME:
18464 			case SECOND:
18465 			case SECONDARY:
18466 			case SECONDARY_ENGINE:
18467 			case SECONDARY_ENGINE_ATTRIBUTE:
18468 			case SECONDARY_LOAD:
18469 			case SECONDARY_UNLOAD:
18470 			case SECURITY:
18471 			case SERIAL:
18472 			case SERIALIZABLE:
18473 			case SERVER:
18474 			case SESSION:
18475 			case SHARE:
18476 			case SHUTDOWN:
18477 			case SIGNED:
18478 			case SIMPLE:
18479 			case SLAVE:
18480 			case SLOW:
18481 			case SNAPSHOT:
18482 			case SOCKET:
18483 			case SONAME:
18484 			case SOUNDS:
18485 			case SOURCE:
18486 			case SQL_AFTER_GTIDS:
18487 			case SQL_AFTER_MTS_GAPS:
18488 			case SQL_BEFORE_GTIDS:
18489 			case SQL_BUFFER_RESULT:
18490 			case SQL_NO_CACHE:
18491 			case SQL_THREAD:
18492 			case SRID:
18493 			case STACKED:
18494 			case START:
18495 			case STARTS:
18496 			case STATS_AUTO_RECALC:
18497 			case STATS_PERSISTENT:
18498 			case STATS_SAMPLE_PAGES:
18499 			case STATUS:
18500 			case STOP:
18501 			case STORAGE:
18502 			case STREAM:
18503 			case STRING:
18504 			case SUBCLASS_ORIGIN:
18505 			case SUBJECT:
18506 			case SUBPARTITION:
18507 			case SUBPARTITIONS:
18508 			case SUPER:
18509 			case SUSPEND:
18510 			case SWAPS:
18511 			case SWITCHES:
18512 			case SYSTEM:
18513 			case TABLE:
18514 			case TABLES:
18515 			case TABLESPACE:
18516 			case TABLE_CHECKSUM:
18517 			case TABLE_NAME:
18518 			case TEMPORARY:
18519 			case TEMPTABLE:
18520 			case TEXT:
18521 			case THAN:
18522 			case THREAD_PRIORITY:
18523 			case TIES:
18524 			case TIME:
18525 			case TIMESTAMP:
18526 			case TIMESTAMP_ADD:
18527 			case TIMESTAMP_DIFF:
18528 			case TLS:
18529 			case TRANSACTION:
18530 			case TRIGGERS:
18531 			case TRUE:
18532 			case TRUNCATE:
18533 			case TYPE:
18534 			case TYPES:
18535 			case UNBOUNDED:
18536 			case UNCOMMITTED:
18537 			case UNDEFINED:
18538 			case UNDOFILE:
18539 			case UNDO_BUFFER_SIZE:
18540 			case UNICODE:
18541 			case UNINSTALL:
18542 			case UNKNOWN:
18543 			case UNTIL:
18544 			case UPGRADE:
18545 			case USER:
18546 			case USER_RESOURCES:
18547 			case USE_FRM:
18548 			case UTC_DATE:
18549 			case UTC_TIME:
18550 			case UTC_TIMESTAMP:
18551 			case VALIDATION:
18552 			case VALUE:
18553 			case VALUES:
18554 			case VARIABLES:
18555 			case VCPU:
18556 			case VIEW:
18557 			case VISIBLE:
18558 			case WAIT:
18559 			case WARNINGS:
18560 			case WEEK:
18561 			case WEIGHT_STRING:
18562 			case WITHOUT:
18563 			case WORK:
18564 			case WRAPPER:
18565 			case X509:
18566 			case XA:
18567 			case XID:
18568 			case XML:
18569 			case YEAR:
18570 			case YEAR_MONTH:
18571 			case JSON_ARRAY:
18572 			case JSON_ARRAY_APPEND:
18573 			case JSON_ARRAY_INSERT:
18574 			case JSON_CONTAINS:
18575 			case JSON_CONTAINS_PATH:
18576 			case JSON_DEPTH:
18577 			case JSON_EXTRACT:
18578 			case JSON_INSERT:
18579 			case JSON_KEYS:
18580 			case JSON_LENGTH:
18581 			case JSON_MERGE:
18582 			case JSON_MERGE_PATCH:
18583 			case JSON_MERGE_PRESERVE:
18584 			case JSON_OBJECT:
18585 			case JSON_OVERLAPS:
18586 			case JSON_PRETTY:
18587 			case JSON_QUOTE:
18588 			case JSON_REMOVE:
18589 			case JSON_REPLACE:
18590 			case JSON_SCHEMA_VALID:
18591 			case JSON_SCHEMA_VALIDATION_REPORT:
18592 			case JSON_SEARCH:
18593 			case JSON_SET:
18594 			case JSON_STORAGE_FREE:
18595 			case JSON_STORAGE_SIZE:
18596 			case JSON_TYPE:
18597 			case JSON_UNQUOTE:
18598 			case JSON_VALID:
18599 			case SINGLE_QUOTED_TEXT:
18600 			case DOUBLE_QUOTED_TEXT:
18601 			case BQUOTA_STRING:
18602 			case NCHAR_TEXT:
18603 			case UNDERSCORE_CHARSET:
18604 			case NUMBER_:
18605 			case HEX_DIGIT_:
18606 			case BIT_NUM_:
18607 			case IDENTIFIER_:
18608 			case IP_ADDRESS:
18609 				{
18610 				setState(1900);
18611 				expr(0);
18612 				setState(1905);
18613 				_errHandler.sync(this);
18614 				_la = _input.LA(1);
18615 				while (_la==COMMA_) {
18616 					{
18617 					{
18618 					setState(1901);
18619 					match(COMMA_);
18620 					setState(1902);
18621 					expr(0);
18622 					}
18623 					}
18624 					setState(1907);
18625 					_errHandler.sync(this);
18626 					_la = _input.LA(1);
18627 				}
18628 				}
18629 				break;
18630 			case ASTERISK_:
18631 				{
18632 				setState(1908);
18633 				match(ASTERISK_);
18634 				}
18635 				break;
18636 			case RP_:
18637 			case COLLATE:
18638 				break;
18639 			default:
18640 				break;
18641 			}
18642 			setState(1912);
18643 			_errHandler.sync(this);
18644 			_la = _input.LA(1);
18645 			if (_la==COLLATE) {
18646 				{
18647 				setState(1911);
18648 				collateClause();
18649 				}
18650 			}
18651 
18652 			setState(1914);
18653 			match(RP_);
18654 			setState(1916);
18655 			_errHandler.sync(this);
18656 			switch ( getInterpreter().adaptivePredict(_input,216,_ctx) ) {
18657 			case 1:
18658 				{
18659 				setState(1915);
18660 				overClause();
18661 				}
18662 				break;
18663 			}
18664 			}
18665 		}
18666 		catch (RecognitionException re) {
18667 			_localctx.exception = re;
18668 			_errHandler.reportError(this, re);
18669 			_errHandler.recover(this, re);
18670 		}
18671 		finally {
18672 			exitRule();
18673 		}
18674 		return _localctx;
18675 	}
18676 
18677 	public static class JsonFunctionContext extends ParserRuleContext {
18678 		public ColumnRefContext columnRef() {
18679 			return getRuleContext(ColumnRefContext.class,0);
18680 		}
18681 		public PathContext path() {
18682 			return getRuleContext(PathContext.class,0);
18683 		}
18684 		public TerminalNode JSON_SEPARATOR() { return getToken(HiveStatementParser.JSON_SEPARATOR, 0); }
18685 		public TerminalNode JSON_UNQUOTED_SEPARATOR() { return getToken(HiveStatementParser.JSON_UNQUOTED_SEPARATOR, 0); }
18686 		public JsonFunctionNameContext jsonFunctionName() {
18687 			return getRuleContext(JsonFunctionNameContext.class,0);
18688 		}
18689 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
18690 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
18691 		public List<ExprContext> expr() {
18692 			return getRuleContexts(ExprContext.class);
18693 		}
18694 		public ExprContext expr(int i) {
18695 			return getRuleContext(ExprContext.class,i);
18696 		}
18697 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
18698 		public TerminalNode COMMA_(int i) {
18699 			return getToken(HiveStatementParser.COMMA_, i);
18700 		}
18701 		public JsonFunctionContext(ParserRuleContext parent, int invokingState) {
18702 			super(parent, invokingState);
18703 		}
18704 		@Override public int getRuleIndex() { return RULE_jsonFunction; }
18705 		@Override
18706 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
18707 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitJsonFunction(this);
18708 			else return visitor.visitChildren(this);
18709 		}
18710 	}
18711 
18712 	public final JsonFunctionContext jsonFunction() throws RecognitionException {
18713 		JsonFunctionContext _localctx = new JsonFunctionContext(_ctx, getState());
18714 		enterRule(_localctx, 342, RULE_jsonFunction);
18715 		int _la;
18716 		try {
18717 			setState(1939);
18718 			_errHandler.sync(this);
18719 			switch ( getInterpreter().adaptivePredict(_input,220,_ctx) ) {
18720 			case 1:
18721 				enterOuterAlt(_localctx, 1);
18722 				{
18723 				setState(1918);
18724 				columnRef();
18725 				setState(1919);
18726 				_la = _input.LA(1);
18727 				if ( !(_la==JSON_SEPARATOR || _la==JSON_UNQUOTED_SEPARATOR) ) {
18728 				_errHandler.recoverInline(this);
18729 				}
18730 				else {
18731 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
18732 					_errHandler.reportMatch(this);
18733 					consume();
18734 				}
18735 				setState(1920);
18736 				path();
18737 				}
18738 				break;
18739 			case 2:
18740 				enterOuterAlt(_localctx, 2);
18741 				{
18742 				setState(1922);
18743 				jsonFunctionName();
18744 				setState(1923);
18745 				match(LP_);
18746 				setState(1935);
18747 				_errHandler.sync(this);
18748 				switch ( getInterpreter().adaptivePredict(_input,219,_ctx) ) {
18749 				case 1:
18750 					{
18751 					setState(1925);
18752 					_errHandler.sync(this);
18753 					_la = _input.LA(1);
18754 					if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NOT_) | (1L << TILDE_) | (1L << PLUS_) | (1L << MINUS_) | (1L << LP_) | (1L << LBE_) | (1L << QUESTION_) | (1L << AT_) | (1L << MAX) | (1L << MIN) | (1L << SUM) | (1L << COUNT) | (1L << GROUP_CONCAT) | (1L << CAST) | (1L << POSITION) | (1L << SUBSTRING) | (1L << SUBSTR) | (1L << EXTRACT) | (1L << TRIM) | (1L << LAST_DAY) | (1L << TRADITIONAL) | (1L << TREE) | (1L << MYSQL_MAIN) | (1L << MYSQL_ADMIN) | (1L << INSTANT))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (INPLACE - 64)) | (1L << (COPY - 64)) | (1L << (UL_BINARY - 64)) | (1L << (AUTOCOMMIT - 64)) | (1L << (INNODB - 64)) | (1L << (REDO_LOG - 64)) | (1L << (ACCOUNT - 64)) | (1L << (ACTION - 64)) | (1L << (ACTIVE - 64)) | (1L << (ADMIN - 64)) | (1L << (AFTER - 64)) | (1L << (AGAINST - 64)) | (1L << (AGGREGATE - 64)) | (1L << (ALGORITHM - 64)) | (1L << (ALWAYS - 64)) | (1L << (ANY - 64)) | (1L << (ARRAY - 64)) | (1L << (ASCII - 64)) | (1L << (AT - 64)) | (1L << (ATTRIBUTE - 64)) | (1L << (AUTOEXTEND_SIZE - 64)) | (1L << (AUTO_INCREMENT - 64)) | (1L << (AVG - 64)) | (1L << (BIT_XOR - 64)) | (1L << (AVG_ROW_LENGTH - 64)) | (1L << (BACKUP - 64)) | (1L << (BEGIN - 64)) | (1L << (BINARY - 64)) | (1L << (BINLOG - 64)) | (1L << (BIT - 64)) | (1L << (BLOCK - 64)) | (1L << (BOOL - 64)) | (1L << (BOOLEAN - 64)) | (1L << (BTREE - 64)) | (1L << (BUCKETS - 64)) | (1L << (BYTE - 64)) | (1L << (CACHE - 64)) | (1L << (CASCADED - 64)) | (1L << (CASE - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CHAIN - 64)) | (1L << (CHANGED - 64)) | (1L << (CHANNEL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CHAR - 128)) | (1L << (CHARSET - 128)) | (1L << (CHECKSUM - 128)) | (1L << (CIPHER - 128)) | (1L << (CLASS_ORIGIN - 128)) | (1L << (CLIENT - 128)) | (1L << (CLONE - 128)) | (1L << (CLOSE - 128)) | (1L << (COALESCE - 128)) | (1L << (CODE - 128)) | (1L << (COLLATION - 128)) | (1L << (COLUMNS - 128)) | (1L << (COLUMN_FORMAT - 128)) | (1L << (COLUMN_NAME - 128)) | (1L << (COMMENT - 128)) | (1L << (COMMIT - 128)) | (1L << (COMMITTED - 128)) | (1L << (COMPACT - 128)) | (1L << (COMPLETION - 128)) | (1L << (COMPONENT - 128)) | (1L << (COMPRESSED - 128)) | (1L << (COMPRESSION - 128)) | (1L << (CONCURRENT - 128)) | (1L << (CONNECTION - 128)) | (1L << (CONSISTENT - 128)) | (1L << (CONSTRAINT_CATALOG - 128)) | (1L << (CONSTRAINT_NAME - 128)) | (1L << (CONSTRAINT_SCHEMA - 128)) | (1L << (CONTAINS - 128)) | (1L << (CONTEXT - 128)) | (1L << (CONVERT - 128)) | (1L << (CPU - 128)) | (1L << (CREATE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATAFILE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME - 128)) | (1L << (DAY - 128)) | (1L << (DAY_MINUTE - 128)) | (1L << (DEALLOCATE - 128)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (DEFAULT_AUTH - 196)) | (1L << (DEFINER - 196)) | (1L << (DEFINITION - 196)) | (1L << (DELAY_KEY_WRITE - 196)) | (1L << (DENSE_RANK - 196)) | (1L << (DESCRIPTION - 196)) | (1L << (DIAGNOSTICS - 196)) | (1L << (DIRECTORY - 196)) | (1L << (DISABLE - 196)) | (1L << (DISCARD - 196)) | (1L << (DISK - 196)) | (1L << (DO - 196)) | (1L << (DUMPFILE - 196)) | (1L << (DUPLICATE - 196)) | (1L << (DYNAMIC - 196)) | (1L << (ENABLE - 196)) | (1L << (ENCRYPTION - 196)) | (1L << (END - 196)) | (1L << (ENDS - 196)) | (1L << (ENFORCED - 196)) | (1L << (ENGINE - 196)) | (1L << (ENGINES - 196)) | (1L << (ENGINE_ATTRIBUTE - 196)) | (1L << (ENUM - 196)) | (1L << (ERROR - 196)) | (1L << (ERRORS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVENT - 196)) | (1L << (EVENTS - 196)) | (1L << (EVERY - 196)) | (1L << (EXCHANGE - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXPANSION - 196)) | (1L << (EXPIRE - 196)) | (1L << (EXPORT - 196)) | (1L << (EXTENDED - 196)) | (1L << (EXTENT_SIZE - 196)) | (1L << (FAILED_LOGIN_ATTEMPTS - 196)) | (1L << (FALSE - 196)) | (1L << (FAST - 196)) | (1L << (FAULTS - 196)))) != 0) || ((((_la - 260)) & ~0x3f) == 0 && ((1L << (_la - 260)) & ((1L << (FILE - 260)) | (1L << (FILE_BLOCK_SIZE - 260)) | (1L << (FILTER - 260)) | (1L << (FIRST - 260)) | (1L << (FIRST_VALUE - 260)) | (1L << (FIXED - 260)) | (1L << (FLUSH - 260)) | (1L << (FOLLOWING - 260)) | (1L << (FOLLOWS - 260)) | (1L << (FORMAT - 260)) | (1L << (FOUND - 260)) | (1L << (FULL - 260)) | (1L << (GENERAL - 260)) | (1L << (GEOMETRY - 260)) | (1L << (GEOMETRYCOLLECTION - 260)) | (1L << (GET_FORMAT - 260)) | (1L << (GET_MASTER_PUBLIC_KEY - 260)) | (1L << (GLOBAL - 260)) | (1L << (GRANTS - 260)) | (1L << (GROUP_REPLICATION - 260)) | (1L << (HANDLER - 260)) | (1L << (HASH - 260)) | (1L << (HELP - 260)) | (1L << (HISTOGRAM - 260)) | (1L << (HISTORY - 260)) | (1L << (HOST - 260)) | (1L << (HOSTS - 260)) | (1L << (HOUR - 260)) | (1L << (IDENTIFIED - 260)) | (1L << (IF - 260)) | (1L << (IGNORE_SERVER_IDS - 260)) | (1L << (IMPORT - 260)) | (1L << (INACTIVE - 260)) | (1L << (INDEXES - 260)) | (1L << (INITIAL_SIZE - 260)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (INSERT - 326)) | (1L << (INSERT_METHOD - 326)) | (1L << (INSTALL - 326)) | (1L << (INSTANCE - 326)) | (1L << (INTERVAL - 326)) | (1L << (INVISIBLE - 326)) | (1L << (INVOKER - 326)) | (1L << (IO - 326)) | (1L << (IPC - 326)) | (1L << (ISOLATION - 326)) | (1L << (ISSUER - 326)) | (1L << (JSON - 326)) | (1L << (JSON_TABLE - 326)) | (1L << (JSON_VALUE - 326)) | (1L << (KEY - 326)) | (1L << (KEY_BLOCK_SIZE - 326)) | (1L << (LAG - 326)) | (1L << (LANGUAGE - 326)) | (1L << (LAST - 326)) | (1L << (LAST_VALUE - 326)) | (1L << (LEAD - 326)) | (1L << (LEAVES - 326)) | (1L << (LEFT - 326)) | (1L << (LESS - 326)) | (1L << (LEVEL - 326)) | (1L << (LINESTRING - 326)) | (1L << (LIST - 326)) | (1L << (LOCAL - 326)) | (1L << (LOCALTIME - 326)) | (1L << (LOCALTIMESTAMP - 326)) | (1L << (LOCKED - 326)) | (1L << (LOCKS - 326)) | (1L << (LOGFILE - 326)) | (1L << (LOGS - 326)))) != 0) || ((((_la - 391)) & ~0x3f) == 0 && ((1L << (_la - 391)) & ((1L << (MASTER - 391)) | (1L << (MASTER_AUTO_POSITION - 391)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 391)) | (1L << (MASTER_CONNECT_RETRY - 391)) | (1L << (MASTER_DELAY - 391)) | (1L << (MASTER_HEARTBEAT_PERIOD - 391)) | (1L << (MASTER_HOST - 391)) | (1L << (MASTER_LOG_FILE - 391)) | (1L << (MASTER_LOG_POS - 391)) | (1L << (MASTER_PASSWORD - 391)) | (1L << (MASTER_PORT - 391)) | (1L << (MASTER_PUBLIC_KEY_PATH - 391)) | (1L << (MASTER_RETRY_COUNT - 391)) | (1L << (MASTER_SERVER_ID - 391)) | (1L << (MASTER_SSL - 391)) | (1L << (MASTER_SSL_CA - 391)) | (1L << (MASTER_SSL_CAPATH - 391)) | (1L << (MASTER_SSL_CERT - 391)) | (1L << (MASTER_SSL_CIPHER - 391)) | (1L << (MASTER_SSL_CRL - 391)) | (1L << (MASTER_SSL_CRLPATH - 391)) | (1L << (MASTER_SSL_KEY - 391)) | (1L << (MASTER_TLS_CIPHERSUITES - 391)) | (1L << (MASTER_TLS_VERSION - 391)) | (1L << (MASTER_USER - 391)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 391)) | (1L << (MATCH - 391)) | (1L << (MAXVALUE - 391)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 391)) | (1L << (MAX_QUERIES_PER_HOUR - 391)) | (1L << (MAX_ROWS - 391)) | (1L << (MAX_SIZE - 391)) | (1L << (MAX_UPDATES_PER_HOUR - 391)) | (1L << (MAX_USER_CONNECTIONS - 391)) | (1L << (MEDIUM - 391)) | (1L << (MEMBER - 391)) | (1L << (MEMORY - 391)) | (1L << (MERGE - 391)) | (1L << (MESSAGE_TEXT - 391)) | (1L << (MICROSECOND - 391)) | (1L << (MIGRATE - 391)) | (1L << (MINUTE - 391)) | (1L << (MIN_ROWS - 391)) | (1L << (MOD - 391)) | (1L << (MODE - 391)) | (1L << (MODIFY - 391)) | (1L << (MONTH - 391)) | (1L << (MULTILINESTRING - 391)) | (1L << (MULTIPOINT - 391)) | (1L << (MULTIPOLYGON - 391)) | (1L << (MUTEX - 391)) | (1L << (MYSQL_ERRNO - 391)) | (1L << (NAME - 391)) | (1L << (NAMES - 391)) | (1L << (NATIONAL - 391)))) != 0) || ((((_la - 458)) & ~0x3f) == 0 && ((1L << (_la - 458)) & ((1L << (NCHAR - 458)) | (1L << (NDBCLUSTER - 458)) | (1L << (NESTED - 458)) | (1L << (NETWORK_NAMESPACE - 458)) | (1L << (NEVER - 458)) | (1L << (NEW - 458)) | (1L << (NEXT - 458)) | (1L << (NO - 458)) | (1L << (NODEGROUP - 458)) | (1L << (NONE - 458)) | (1L << (NOT - 458)) | (1L << (NOWAIT - 458)) | (1L << (NO_WAIT - 458)) | (1L << (NTH_VALUE - 458)) | (1L << (NTILE - 458)) | (1L << (NULL - 458)) | (1L << (NULLS - 458)) | (1L << (NUMBER - 458)) | (1L << (NVARCHAR - 458)) | (1L << (OFF - 458)) | (1L << (OFFSET - 458)) | (1L << (OJ - 458)) | (1L << (OLD - 458)) | (1L << (ONE - 458)) | (1L << (ONLY - 458)) | (1L << (OPEN - 458)) | (1L << (OPTIONAL - 458)) | (1L << (OPTIONS - 458)) | (1L << (ORDINALITY - 458)) | (1L << (ORGANIZATION - 458)) | (1L << (OTHERS - 458)) | (1L << (OWNER - 458)) | (1L << (PACK_KEYS - 458)) | (1L << (PAGE - 458)) | (1L << (PARSER - 458)) | (1L << (PARTIAL - 458)) | (1L << (PARTITIONING - 458)) | (1L << (PARTITIONS - 458)) | (1L << (PASSWORD - 458)) | (1L << (PASSWORD_LOCK_TIME - 458)) | (1L << (PATH - 458)) | (1L << (PERCENT_RANK - 458)) | (1L << (PERSIST - 458)) | (1L << (PERSIST_ONLY - 458)) | (1L << (PHASE - 458)) | (1L << (PLUGIN - 458)) | (1L << (PLUGINS - 458)))) != 0) || ((((_la - 522)) & ~0x3f) == 0 && ((1L << (_la - 522)) & ((1L << (PLUGIN_DIR - 522)) | (1L << (POINT - 522)) | (1L << (POLYGON - 522)) | (1L << (PORT - 522)) | (1L << (PRECEDES - 522)) | (1L << (PRECEDING - 522)) | (1L << (PREPARE - 522)) | (1L << (PRESERVE - 522)) | (1L << (PREV - 522)) | (1L << (PRIMARY - 522)) | (1L << (PRIVILEGES - 522)) | (1L << (PRIVILEGE_CHECKS_USER - 522)) | (1L << (PROCESS - 522)) | (1L << (PROCESSLIST - 522)) | (1L << (PROFILE - 522)) | (1L << (PROFILES - 522)) | (1L << (PROXY - 522)) | (1L << (QUARTER - 522)) | (1L << (QUERY - 522)) | (1L << (QUICK - 522)) | (1L << (RANDOM - 522)) | (1L << (RANK - 522)) | (1L << (READ_ONLY - 522)) | (1L << (REBUILD - 522)) | (1L << (RECOVER - 522)) | (1L << (REDO_BUFFER_SIZE - 522)) | (1L << (REDUNDANT - 522)) | (1L << (REFERENCE - 522)) | (1L << (RELAY - 522)) | (1L << (RELAYLOG - 522)) | (1L << (RELAY_LOG_FILE - 522)) | (1L << (RELAY_LOG_POS - 522)) | (1L << (RELAY_THREAD - 522)) | (1L << (RELOAD - 522)) | (1L << (REMOVE - 522)) | (1L << (REORGANIZE - 522)) | (1L << (REPAIR - 522)) | (1L << (REPEAT - 522)) | (1L << (REPEATABLE - 522)) | (1L << (REPLACE - 522)) | (1L << (REPLICATE_DO_DB - 522)) | (1L << (REPLICATE_DO_TABLE - 522)) | (1L << (REPLICATE_IGNORE_DB - 522)) | (1L << (REPLICATE_IGNORE_TABLE - 522)) | (1L << (REPLICATE_REWRITE_DB - 522)) | (1L << (REPLICATE_WILD_DO_TABLE - 522)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 522)) | (1L << (REPLICATION - 522)))) != 0) || ((((_la - 586)) & ~0x3f) == 0 && ((1L << (_la - 586)) & ((1L << (REQUIRE_ROW_FORMAT - 586)) | (1L << (RESET - 586)) | (1L << (RESOURCE - 586)) | (1L << (RESPECT - 586)) | (1L << (RESTART - 586)) | (1L << (RESTORE - 586)) | (1L << (RESUME - 586)) | (1L << (RETAIN - 586)) | (1L << (RETURNED_SQLSTATE - 586)) | (1L << (RETURNING - 586)) | (1L << (RETURNS - 586)) | (1L << (REUSE - 586)) | (1L << (REVERSE - 586)) | (1L << (RIGHT - 586)) | (1L << (ROLE - 586)) | (1L << (ROLLBACK - 586)) | (1L << (ROLLUP - 586)) | (1L << (ROTATE - 586)) | (1L << (ROUTINE - 586)) | (1L << (ROW - 586)) | (1L << (ROW_COUNT - 586)) | (1L << (ROW_FORMAT - 586)) | (1L << (ROW_NUMBER - 586)) | (1L << (RTREE - 586)) | (1L << (SAVEPOINT - 586)) | (1L << (SCHEDULE - 586)) | (1L << (SCHEMA - 586)) | (1L << (SCHEMA_NAME - 586)) | (1L << (SECOND - 586)) | (1L << (SECONDARY - 586)) | (1L << (SECONDARY_ENGINE - 586)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 586)) | (1L << (SECONDARY_LOAD - 586)) | (1L << (SECONDARY_UNLOAD - 586)) | (1L << (SECURITY - 586)) | (1L << (SERIAL - 586)) | (1L << (SERIALIZABLE - 586)) | (1L << (SERVER - 586)) | (1L << (SESSION - 586)) | (1L << (SHARE - 586)) | (1L << (SHUTDOWN - 586)) | (1L << (SIGNED - 586)) | (1L << (SIMPLE - 586)) | (1L << (SLAVE - 586)) | (1L << (SLOW - 586)))) != 0) || ((((_la - 650)) & ~0x3f) == 0 && ((1L << (_la - 650)) & ((1L << (SNAPSHOT - 650)) | (1L << (SOCKET - 650)) | (1L << (SONAME - 650)) | (1L << (SOUNDS - 650)) | (1L << (SOURCE - 650)) | (1L << (SQL_AFTER_GTIDS - 650)) | (1L << (SQL_AFTER_MTS_GAPS - 650)) | (1L << (SQL_BEFORE_GTIDS - 650)) | (1L << (SQL_BUFFER_RESULT - 650)) | (1L << (SQL_NO_CACHE - 650)) | (1L << (SQL_THREAD - 650)) | (1L << (SRID - 650)) | (1L << (STACKED - 650)) | (1L << (START - 650)) | (1L << (STARTS - 650)) | (1L << (STATS_AUTO_RECALC - 650)) | (1L << (STATS_PERSISTENT - 650)) | (1L << (STATS_SAMPLE_PAGES - 650)) | (1L << (STATUS - 650)) | (1L << (STOP - 650)) | (1L << (STORAGE - 650)) | (1L << (STREAM - 650)) | (1L << (STRING - 650)) | (1L << (SUBCLASS_ORIGIN - 650)) | (1L << (SUBJECT - 650)) | (1L << (SUBPARTITION - 650)) | (1L << (SUBPARTITIONS - 650)) | (1L << (SUPER - 650)) | (1L << (SUSPEND - 650)) | (1L << (SWAPS - 650)) | (1L << (SWITCHES - 650)) | (1L << (SYSTEM - 650)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUE - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VALUES - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (JSON_ARRAY - 787)) | (1L << (JSON_ARRAY_APPEND - 787)) | (1L << (JSON_ARRAY_INSERT - 787)) | (1L << (JSON_CONTAINS - 787)) | (1L << (JSON_CONTAINS_PATH - 787)) | (1L << (JSON_DEPTH - 787)) | (1L << (JSON_EXTRACT - 787)) | (1L << (JSON_INSERT - 787)) | (1L << (JSON_KEYS - 787)) | (1L << (JSON_LENGTH - 787)) | (1L << (JSON_MERGE - 787)) | (1L << (JSON_MERGE_PATCH - 787)) | (1L << (JSON_MERGE_PRESERVE - 787)) | (1L << (JSON_OBJECT - 787)) | (1L << (JSON_OVERLAPS - 787)) | (1L << (JSON_PRETTY - 787)) | (1L << (JSON_QUOTE - 787)) | (1L << (JSON_REMOVE - 787)) | (1L << (JSON_REPLACE - 787)) | (1L << (JSON_SCHEMA_VALID - 787)) | (1L << (JSON_SCHEMA_VALIDATION_REPORT - 787)) | (1L << (JSON_SEARCH - 787)) | (1L << (JSON_SET - 787)) | (1L << (JSON_STORAGE_FREE - 787)) | (1L << (JSON_STORAGE_SIZE - 787)) | (1L << (JSON_TYPE - 787)) | (1L << (JSON_UNQUOTE - 787)) | (1L << (JSON_VALID - 787)) | (1L << (SINGLE_QUOTED_TEXT - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (NCHAR_TEXT - 787)) | (1L << (UNDERSCORE_CHARSET - 787)) | (1L << (NUMBER_ - 787)))) != 0) || ((((_la - 851)) & ~0x3f) == 0 && ((1L << (_la - 851)) & ((1L << (HEX_DIGIT_ - 851)) | (1L << (BIT_NUM_ - 851)) | (1L << (IDENTIFIER_ - 851)) | (1L << (IP_ADDRESS - 851)))) != 0)) {
18755 						{
18756 						setState(1924);
18757 						expr(0);
18758 						}
18759 					}
18760 
18761 					}
18762 					break;
18763 				case 2:
18764 					{
18765 					setState(1927);
18766 					expr(0);
18767 					setState(1932);
18768 					_errHandler.sync(this);
18769 					_la = _input.LA(1);
18770 					while (_la==COMMA_) {
18771 						{
18772 						{
18773 						setState(1928);
18774 						match(COMMA_);
18775 						setState(1929);
18776 						expr(0);
18777 						}
18778 						}
18779 						setState(1934);
18780 						_errHandler.sync(this);
18781 						_la = _input.LA(1);
18782 					}
18783 					}
18784 					break;
18785 				}
18786 				setState(1937);
18787 				match(RP_);
18788 				}
18789 				break;
18790 			}
18791 		}
18792 		catch (RecognitionException re) {
18793 			_localctx.exception = re;
18794 			_errHandler.reportError(this, re);
18795 			_errHandler.recover(this, re);
18796 		}
18797 		finally {
18798 			exitRule();
18799 		}
18800 		return _localctx;
18801 	}
18802 
18803 	public static class JsonFunctionNameContext extends ParserRuleContext {
18804 		public TerminalNode JSON_ARRAY() { return getToken(HiveStatementParser.JSON_ARRAY, 0); }
18805 		public TerminalNode JSON_ARRAY_APPEND() { return getToken(HiveStatementParser.JSON_ARRAY_APPEND, 0); }
18806 		public TerminalNode JSON_ARRAY_INSERT() { return getToken(HiveStatementParser.JSON_ARRAY_INSERT, 0); }
18807 		public TerminalNode JSON_CONTAINS() { return getToken(HiveStatementParser.JSON_CONTAINS, 0); }
18808 		public TerminalNode JSON_CONTAINS_PATH() { return getToken(HiveStatementParser.JSON_CONTAINS_PATH, 0); }
18809 		public TerminalNode JSON_DEPTH() { return getToken(HiveStatementParser.JSON_DEPTH, 0); }
18810 		public TerminalNode JSON_EXTRACT() { return getToken(HiveStatementParser.JSON_EXTRACT, 0); }
18811 		public TerminalNode JSON_INSERT() { return getToken(HiveStatementParser.JSON_INSERT, 0); }
18812 		public TerminalNode JSON_KEYS() { return getToken(HiveStatementParser.JSON_KEYS, 0); }
18813 		public TerminalNode JSON_LENGTH() { return getToken(HiveStatementParser.JSON_LENGTH, 0); }
18814 		public TerminalNode JSON_MERGE() { return getToken(HiveStatementParser.JSON_MERGE, 0); }
18815 		public TerminalNode JSON_MERGE_PATCH() { return getToken(HiveStatementParser.JSON_MERGE_PATCH, 0); }
18816 		public TerminalNode JSON_MERGE_PRESERVE() { return getToken(HiveStatementParser.JSON_MERGE_PRESERVE, 0); }
18817 		public TerminalNode JSON_OBJECT() { return getToken(HiveStatementParser.JSON_OBJECT, 0); }
18818 		public TerminalNode JSON_OVERLAPS() { return getToken(HiveStatementParser.JSON_OVERLAPS, 0); }
18819 		public TerminalNode JSON_PRETTY() { return getToken(HiveStatementParser.JSON_PRETTY, 0); }
18820 		public TerminalNode JSON_QUOTE() { return getToken(HiveStatementParser.JSON_QUOTE, 0); }
18821 		public TerminalNode JSON_REMOVE() { return getToken(HiveStatementParser.JSON_REMOVE, 0); }
18822 		public TerminalNode JSON_REPLACE() { return getToken(HiveStatementParser.JSON_REPLACE, 0); }
18823 		public TerminalNode JSON_SCHEMA_VALID() { return getToken(HiveStatementParser.JSON_SCHEMA_VALID, 0); }
18824 		public TerminalNode JSON_SCHEMA_VALIDATION_REPORT() { return getToken(HiveStatementParser.JSON_SCHEMA_VALIDATION_REPORT, 0); }
18825 		public TerminalNode JSON_SEARCH() { return getToken(HiveStatementParser.JSON_SEARCH, 0); }
18826 		public TerminalNode JSON_SET() { return getToken(HiveStatementParser.JSON_SET, 0); }
18827 		public TerminalNode JSON_STORAGE_FREE() { return getToken(HiveStatementParser.JSON_STORAGE_FREE, 0); }
18828 		public TerminalNode JSON_STORAGE_SIZE() { return getToken(HiveStatementParser.JSON_STORAGE_SIZE, 0); }
18829 		public TerminalNode JSON_TABLE() { return getToken(HiveStatementParser.JSON_TABLE, 0); }
18830 		public TerminalNode JSON_TYPE() { return getToken(HiveStatementParser.JSON_TYPE, 0); }
18831 		public TerminalNode JSON_UNQUOTE() { return getToken(HiveStatementParser.JSON_UNQUOTE, 0); }
18832 		public TerminalNode JSON_VALID() { return getToken(HiveStatementParser.JSON_VALID, 0); }
18833 		public TerminalNode JSON_VALUE() { return getToken(HiveStatementParser.JSON_VALUE, 0); }
18834 		public TerminalNode MEMBER() { return getToken(HiveStatementParser.MEMBER, 0); }
18835 		public TerminalNode OF() { return getToken(HiveStatementParser.OF, 0); }
18836 		public JsonFunctionNameContext(ParserRuleContext parent, int invokingState) {
18837 			super(parent, invokingState);
18838 		}
18839 		@Override public int getRuleIndex() { return RULE_jsonFunctionName; }
18840 		@Override
18841 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
18842 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitJsonFunctionName(this);
18843 			else return visitor.visitChildren(this);
18844 		}
18845 	}
18846 
18847 	public final JsonFunctionNameContext jsonFunctionName() throws RecognitionException {
18848 		JsonFunctionNameContext _localctx = new JsonFunctionNameContext(_ctx, getState());
18849 		enterRule(_localctx, 344, RULE_jsonFunctionName);
18850 		try {
18851 			setState(1973);
18852 			_errHandler.sync(this);
18853 			switch (_input.LA(1)) {
18854 			case JSON_ARRAY:
18855 				enterOuterAlt(_localctx, 1);
18856 				{
18857 				setState(1941);
18858 				match(JSON_ARRAY);
18859 				}
18860 				break;
18861 			case JSON_ARRAY_APPEND:
18862 				enterOuterAlt(_localctx, 2);
18863 				{
18864 				setState(1942);
18865 				match(JSON_ARRAY_APPEND);
18866 				}
18867 				break;
18868 			case JSON_ARRAY_INSERT:
18869 				enterOuterAlt(_localctx, 3);
18870 				{
18871 				setState(1943);
18872 				match(JSON_ARRAY_INSERT);
18873 				}
18874 				break;
18875 			case JSON_CONTAINS:
18876 				enterOuterAlt(_localctx, 4);
18877 				{
18878 				setState(1944);
18879 				match(JSON_CONTAINS);
18880 				}
18881 				break;
18882 			case JSON_CONTAINS_PATH:
18883 				enterOuterAlt(_localctx, 5);
18884 				{
18885 				setState(1945);
18886 				match(JSON_CONTAINS_PATH);
18887 				}
18888 				break;
18889 			case JSON_DEPTH:
18890 				enterOuterAlt(_localctx, 6);
18891 				{
18892 				setState(1946);
18893 				match(JSON_DEPTH);
18894 				}
18895 				break;
18896 			case JSON_EXTRACT:
18897 				enterOuterAlt(_localctx, 7);
18898 				{
18899 				setState(1947);
18900 				match(JSON_EXTRACT);
18901 				}
18902 				break;
18903 			case JSON_INSERT:
18904 				enterOuterAlt(_localctx, 8);
18905 				{
18906 				setState(1948);
18907 				match(JSON_INSERT);
18908 				}
18909 				break;
18910 			case JSON_KEYS:
18911 				enterOuterAlt(_localctx, 9);
18912 				{
18913 				setState(1949);
18914 				match(JSON_KEYS);
18915 				}
18916 				break;
18917 			case JSON_LENGTH:
18918 				enterOuterAlt(_localctx, 10);
18919 				{
18920 				setState(1950);
18921 				match(JSON_LENGTH);
18922 				}
18923 				break;
18924 			case JSON_MERGE:
18925 				enterOuterAlt(_localctx, 11);
18926 				{
18927 				setState(1951);
18928 				match(JSON_MERGE);
18929 				}
18930 				break;
18931 			case JSON_MERGE_PATCH:
18932 				enterOuterAlt(_localctx, 12);
18933 				{
18934 				setState(1952);
18935 				match(JSON_MERGE_PATCH);
18936 				}
18937 				break;
18938 			case JSON_MERGE_PRESERVE:
18939 				enterOuterAlt(_localctx, 13);
18940 				{
18941 				setState(1953);
18942 				match(JSON_MERGE_PRESERVE);
18943 				}
18944 				break;
18945 			case JSON_OBJECT:
18946 				enterOuterAlt(_localctx, 14);
18947 				{
18948 				setState(1954);
18949 				match(JSON_OBJECT);
18950 				}
18951 				break;
18952 			case JSON_OVERLAPS:
18953 				enterOuterAlt(_localctx, 15);
18954 				{
18955 				setState(1955);
18956 				match(JSON_OVERLAPS);
18957 				}
18958 				break;
18959 			case JSON_PRETTY:
18960 				enterOuterAlt(_localctx, 16);
18961 				{
18962 				setState(1956);
18963 				match(JSON_PRETTY);
18964 				}
18965 				break;
18966 			case JSON_QUOTE:
18967 				enterOuterAlt(_localctx, 17);
18968 				{
18969 				setState(1957);
18970 				match(JSON_QUOTE);
18971 				}
18972 				break;
18973 			case JSON_REMOVE:
18974 				enterOuterAlt(_localctx, 18);
18975 				{
18976 				setState(1958);
18977 				match(JSON_REMOVE);
18978 				}
18979 				break;
18980 			case JSON_REPLACE:
18981 				enterOuterAlt(_localctx, 19);
18982 				{
18983 				setState(1959);
18984 				match(JSON_REPLACE);
18985 				}
18986 				break;
18987 			case JSON_SCHEMA_VALID:
18988 				enterOuterAlt(_localctx, 20);
18989 				{
18990 				setState(1960);
18991 				match(JSON_SCHEMA_VALID);
18992 				}
18993 				break;
18994 			case JSON_SCHEMA_VALIDATION_REPORT:
18995 				enterOuterAlt(_localctx, 21);
18996 				{
18997 				setState(1961);
18998 				match(JSON_SCHEMA_VALIDATION_REPORT);
18999 				}
19000 				break;
19001 			case JSON_SEARCH:
19002 				enterOuterAlt(_localctx, 22);
19003 				{
19004 				setState(1962);
19005 				match(JSON_SEARCH);
19006 				}
19007 				break;
19008 			case JSON_SET:
19009 				enterOuterAlt(_localctx, 23);
19010 				{
19011 				setState(1963);
19012 				match(JSON_SET);
19013 				}
19014 				break;
19015 			case JSON_STORAGE_FREE:
19016 				enterOuterAlt(_localctx, 24);
19017 				{
19018 				setState(1964);
19019 				match(JSON_STORAGE_FREE);
19020 				}
19021 				break;
19022 			case JSON_STORAGE_SIZE:
19023 				enterOuterAlt(_localctx, 25);
19024 				{
19025 				setState(1965);
19026 				match(JSON_STORAGE_SIZE);
19027 				}
19028 				break;
19029 			case JSON_TABLE:
19030 				enterOuterAlt(_localctx, 26);
19031 				{
19032 				setState(1966);
19033 				match(JSON_TABLE);
19034 				}
19035 				break;
19036 			case JSON_TYPE:
19037 				enterOuterAlt(_localctx, 27);
19038 				{
19039 				setState(1967);
19040 				match(JSON_TYPE);
19041 				}
19042 				break;
19043 			case JSON_UNQUOTE:
19044 				enterOuterAlt(_localctx, 28);
19045 				{
19046 				setState(1968);
19047 				match(JSON_UNQUOTE);
19048 				}
19049 				break;
19050 			case JSON_VALID:
19051 				enterOuterAlt(_localctx, 29);
19052 				{
19053 				setState(1969);
19054 				match(JSON_VALID);
19055 				}
19056 				break;
19057 			case JSON_VALUE:
19058 				enterOuterAlt(_localctx, 30);
19059 				{
19060 				setState(1970);
19061 				match(JSON_VALUE);
19062 				}
19063 				break;
19064 			case MEMBER:
19065 				enterOuterAlt(_localctx, 31);
19066 				{
19067 				setState(1971);
19068 				match(MEMBER);
19069 				setState(1972);
19070 				match(OF);
19071 				}
19072 				break;
19073 			default:
19074 				throw new NoViableAltException(this);
19075 			}
19076 		}
19077 		catch (RecognitionException re) {
19078 			_localctx.exception = re;
19079 			_errHandler.reportError(this, re);
19080 			_errHandler.recover(this, re);
19081 		}
19082 		finally {
19083 			exitRule();
19084 		}
19085 		return _localctx;
19086 	}
19087 
19088 	public static class AggregationFunctionNameContext extends ParserRuleContext {
19089 		public TerminalNode MAX() { return getToken(HiveStatementParser.MAX, 0); }
19090 		public TerminalNode MIN() { return getToken(HiveStatementParser.MIN, 0); }
19091 		public TerminalNode SUM() { return getToken(HiveStatementParser.SUM, 0); }
19092 		public TerminalNode COUNT() { return getToken(HiveStatementParser.COUNT, 0); }
19093 		public TerminalNode AVG() { return getToken(HiveStatementParser.AVG, 0); }
19094 		public TerminalNode BIT_XOR() { return getToken(HiveStatementParser.BIT_XOR, 0); }
19095 		public AggregationFunctionNameContext(ParserRuleContext parent, int invokingState) {
19096 			super(parent, invokingState);
19097 		}
19098 		@Override public int getRuleIndex() { return RULE_aggregationFunctionName; }
19099 		@Override
19100 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
19101 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAggregationFunctionName(this);
19102 			else return visitor.visitChildren(this);
19103 		}
19104 	}
19105 
19106 	public final AggregationFunctionNameContext aggregationFunctionName() throws RecognitionException {
19107 		AggregationFunctionNameContext _localctx = new AggregationFunctionNameContext(_ctx, getState());
19108 		enterRule(_localctx, 346, RULE_aggregationFunctionName);
19109 		int _la;
19110 		try {
19111 			enterOuterAlt(_localctx, 1);
19112 			{
19113 			setState(1975);
19114 			_la = _input.LA(1);
19115 			if ( !(((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (AVG - 47)) | (1L << (BIT_XOR - 47)))) != 0)) ) {
19116 			_errHandler.recoverInline(this);
19117 			}
19118 			else {
19119 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
19120 				_errHandler.reportMatch(this);
19121 				consume();
19122 			}
19123 			}
19124 		}
19125 		catch (RecognitionException re) {
19126 			_localctx.exception = re;
19127 			_errHandler.reportError(this, re);
19128 			_errHandler.recover(this, re);
19129 		}
19130 		finally {
19131 			exitRule();
19132 		}
19133 		return _localctx;
19134 	}
19135 
19136 	public static class DistinctContext extends ParserRuleContext {
19137 		public TerminalNode DISTINCT() { return getToken(HiveStatementParser.DISTINCT, 0); }
19138 		public DistinctContext(ParserRuleContext parent, int invokingState) {
19139 			super(parent, invokingState);
19140 		}
19141 		@Override public int getRuleIndex() { return RULE_distinct; }
19142 		@Override
19143 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
19144 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDistinct(this);
19145 			else return visitor.visitChildren(this);
19146 		}
19147 	}
19148 
19149 	public final DistinctContext distinct() throws RecognitionException {
19150 		DistinctContext _localctx = new DistinctContext(_ctx, getState());
19151 		enterRule(_localctx, 348, RULE_distinct);
19152 		try {
19153 			enterOuterAlt(_localctx, 1);
19154 			{
19155 			setState(1977);
19156 			match(DISTINCT);
19157 			}
19158 		}
19159 		catch (RecognitionException re) {
19160 			_localctx.exception = re;
19161 			_errHandler.reportError(this, re);
19162 			_errHandler.recover(this, re);
19163 		}
19164 		finally {
19165 			exitRule();
19166 		}
19167 		return _localctx;
19168 	}
19169 
19170 	public static class OverClauseContext extends ParserRuleContext {
19171 		public TerminalNode OVER() { return getToken(HiveStatementParser.OVER, 0); }
19172 		public WindowSpecificationContext windowSpecification() {
19173 			return getRuleContext(WindowSpecificationContext.class,0);
19174 		}
19175 		public IdentifierContext identifier() {
19176 			return getRuleContext(IdentifierContext.class,0);
19177 		}
19178 		public OverClauseContext(ParserRuleContext parent, int invokingState) {
19179 			super(parent, invokingState);
19180 		}
19181 		@Override public int getRuleIndex() { return RULE_overClause; }
19182 		@Override
19183 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
19184 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOverClause(this);
19185 			else return visitor.visitChildren(this);
19186 		}
19187 	}
19188 
19189 	public final OverClauseContext overClause() throws RecognitionException {
19190 		OverClauseContext _localctx = new OverClauseContext(_ctx, getState());
19191 		enterRule(_localctx, 350, RULE_overClause);
19192 		try {
19193 			enterOuterAlt(_localctx, 1);
19194 			{
19195 			setState(1979);
19196 			match(OVER);
19197 			setState(1982);
19198 			_errHandler.sync(this);
19199 			switch (_input.LA(1)) {
19200 			case LP_:
19201 				{
19202 				setState(1980);
19203 				windowSpecification();
19204 				}
19205 				break;
19206 			case MAX:
19207 			case MIN:
19208 			case SUM:
19209 			case COUNT:
19210 			case GROUP_CONCAT:
19211 			case CAST:
19212 			case POSITION:
19213 			case SUBSTRING:
19214 			case SUBSTR:
19215 			case EXTRACT:
19216 			case TRIM:
19217 			case LAST_DAY:
19218 			case TRADITIONAL:
19219 			case TREE:
19220 			case MYSQL_MAIN:
19221 			case MYSQL_ADMIN:
19222 			case INSTANT:
19223 			case INPLACE:
19224 			case COPY:
19225 			case UL_BINARY:
19226 			case AUTOCOMMIT:
19227 			case INNODB:
19228 			case REDO_LOG:
19229 			case ACCOUNT:
19230 			case ACTION:
19231 			case ACTIVE:
19232 			case ADMIN:
19233 			case AFTER:
19234 			case AGAINST:
19235 			case AGGREGATE:
19236 			case ALGORITHM:
19237 			case ALWAYS:
19238 			case ANY:
19239 			case ARRAY:
19240 			case ASCII:
19241 			case AT:
19242 			case ATTRIBUTE:
19243 			case AUTOEXTEND_SIZE:
19244 			case AUTO_INCREMENT:
19245 			case AVG:
19246 			case BIT_XOR:
19247 			case AVG_ROW_LENGTH:
19248 			case BACKUP:
19249 			case BEGIN:
19250 			case BINLOG:
19251 			case BIT:
19252 			case BLOCK:
19253 			case BOOL:
19254 			case BOOLEAN:
19255 			case BTREE:
19256 			case BUCKETS:
19257 			case BYTE:
19258 			case CACHE:
19259 			case CASCADED:
19260 			case CATALOG_NAME:
19261 			case CHAIN:
19262 			case CHANGED:
19263 			case CHANNEL:
19264 			case CHARSET:
19265 			case CHECKSUM:
19266 			case CIPHER:
19267 			case CLASS_ORIGIN:
19268 			case CLIENT:
19269 			case CLONE:
19270 			case CLOSE:
19271 			case COALESCE:
19272 			case CODE:
19273 			case COLLATION:
19274 			case COLUMNS:
19275 			case COLUMN_FORMAT:
19276 			case COLUMN_NAME:
19277 			case COMMENT:
19278 			case COMMIT:
19279 			case COMMITTED:
19280 			case COMPACT:
19281 			case COMPLETION:
19282 			case COMPONENT:
19283 			case COMPRESSED:
19284 			case COMPRESSION:
19285 			case CONCURRENT:
19286 			case CONNECTION:
19287 			case CONSISTENT:
19288 			case CONSTRAINT_CATALOG:
19289 			case CONSTRAINT_NAME:
19290 			case CONSTRAINT_SCHEMA:
19291 			case CONTAINS:
19292 			case CONTEXT:
19293 			case CPU:
19294 			case CREATE:
19295 			case CURRENT:
19296 			case CURSOR_NAME:
19297 			case DATA:
19298 			case DATAFILE:
19299 			case DATE:
19300 			case DATETIME:
19301 			case DAY:
19302 			case DAY_MINUTE:
19303 			case DEALLOCATE:
19304 			case DEFAULT_AUTH:
19305 			case DEFINER:
19306 			case DEFINITION:
19307 			case DELAY_KEY_WRITE:
19308 			case DESCRIPTION:
19309 			case DIAGNOSTICS:
19310 			case DIRECTORY:
19311 			case DISABLE:
19312 			case DISCARD:
19313 			case DISK:
19314 			case DO:
19315 			case DUMPFILE:
19316 			case DUPLICATE:
19317 			case DYNAMIC:
19318 			case ENABLE:
19319 			case ENCRYPTION:
19320 			case END:
19321 			case ENDS:
19322 			case ENFORCED:
19323 			case ENGINE:
19324 			case ENGINES:
19325 			case ENGINE_ATTRIBUTE:
19326 			case ENUM:
19327 			case ERROR:
19328 			case ERRORS:
19329 			case ESCAPE:
19330 			case EVENT:
19331 			case EVENTS:
19332 			case EVERY:
19333 			case EXCHANGE:
19334 			case EXCLUDE:
19335 			case EXECUTE:
19336 			case EXPANSION:
19337 			case EXPIRE:
19338 			case EXPORT:
19339 			case EXTENDED:
19340 			case EXTENT_SIZE:
19341 			case FAILED_LOGIN_ATTEMPTS:
19342 			case FAST:
19343 			case FAULTS:
19344 			case FILE:
19345 			case FILE_BLOCK_SIZE:
19346 			case FILTER:
19347 			case FIRST:
19348 			case FIXED:
19349 			case FLUSH:
19350 			case FOLLOWING:
19351 			case FOLLOWS:
19352 			case FORMAT:
19353 			case FOUND:
19354 			case FULL:
19355 			case GENERAL:
19356 			case GEOMETRY:
19357 			case GEOMETRYCOLLECTION:
19358 			case GET_FORMAT:
19359 			case GET_MASTER_PUBLIC_KEY:
19360 			case GLOBAL:
19361 			case GRANTS:
19362 			case GROUP_REPLICATION:
19363 			case HANDLER:
19364 			case HASH:
19365 			case HELP:
19366 			case HISTOGRAM:
19367 			case HISTORY:
19368 			case HOST:
19369 			case HOSTS:
19370 			case HOUR:
19371 			case IDENTIFIED:
19372 			case IGNORE_SERVER_IDS:
19373 			case IMPORT:
19374 			case INACTIVE:
19375 			case INDEXES:
19376 			case INITIAL_SIZE:
19377 			case INSERT_METHOD:
19378 			case INSTALL:
19379 			case INSTANCE:
19380 			case INVISIBLE:
19381 			case INVOKER:
19382 			case IO:
19383 			case IPC:
19384 			case ISOLATION:
19385 			case ISSUER:
19386 			case JSON:
19387 			case JSON_VALUE:
19388 			case KEY:
19389 			case KEY_BLOCK_SIZE:
19390 			case LANGUAGE:
19391 			case LAST:
19392 			case LAST_VALUE:
19393 			case LEAVES:
19394 			case LESS:
19395 			case LEVEL:
19396 			case LINESTRING:
19397 			case LIST:
19398 			case LOCAL:
19399 			case LOCKED:
19400 			case LOCKS:
19401 			case LOGFILE:
19402 			case LOGS:
19403 			case MASTER:
19404 			case MASTER_AUTO_POSITION:
19405 			case MASTER_COMPRESSION_ALGORITHM:
19406 			case MASTER_CONNECT_RETRY:
19407 			case MASTER_DELAY:
19408 			case MASTER_HEARTBEAT_PERIOD:
19409 			case MASTER_HOST:
19410 			case MASTER_LOG_FILE:
19411 			case MASTER_LOG_POS:
19412 			case MASTER_PASSWORD:
19413 			case MASTER_PORT:
19414 			case MASTER_PUBLIC_KEY_PATH:
19415 			case MASTER_RETRY_COUNT:
19416 			case MASTER_SERVER_ID:
19417 			case MASTER_SSL:
19418 			case MASTER_SSL_CA:
19419 			case MASTER_SSL_CAPATH:
19420 			case MASTER_SSL_CERT:
19421 			case MASTER_SSL_CIPHER:
19422 			case MASTER_SSL_CRL:
19423 			case MASTER_SSL_CRLPATH:
19424 			case MASTER_SSL_KEY:
19425 			case MASTER_TLS_CIPHERSUITES:
19426 			case MASTER_TLS_VERSION:
19427 			case MASTER_USER:
19428 			case MASTER_ZSTD_COMPRESSION_LEVEL:
19429 			case MAXVALUE:
19430 			case MAX_CONNECTIONS_PER_HOUR:
19431 			case MAX_QUERIES_PER_HOUR:
19432 			case MAX_ROWS:
19433 			case MAX_SIZE:
19434 			case MAX_UPDATES_PER_HOUR:
19435 			case MAX_USER_CONNECTIONS:
19436 			case MEDIUM:
19437 			case MEMBER:
19438 			case MEMORY:
19439 			case MERGE:
19440 			case MESSAGE_TEXT:
19441 			case MICROSECOND:
19442 			case MIGRATE:
19443 			case MINUTE:
19444 			case MIN_ROWS:
19445 			case MODE:
19446 			case MODIFY:
19447 			case MONTH:
19448 			case MULTILINESTRING:
19449 			case MULTIPOINT:
19450 			case MULTIPOLYGON:
19451 			case MUTEX:
19452 			case MYSQL_ERRNO:
19453 			case NAME:
19454 			case NAMES:
19455 			case NATIONAL:
19456 			case NCHAR:
19457 			case NDBCLUSTER:
19458 			case NESTED:
19459 			case NETWORK_NAMESPACE:
19460 			case NEVER:
19461 			case NEW:
19462 			case NEXT:
19463 			case NO:
19464 			case NODEGROUP:
19465 			case NONE:
19466 			case NOWAIT:
19467 			case NO_WAIT:
19468 			case NULLS:
19469 			case NUMBER:
19470 			case NVARCHAR:
19471 			case OFF:
19472 			case OFFSET:
19473 			case OJ:
19474 			case OLD:
19475 			case ONE:
19476 			case ONLY:
19477 			case OPEN:
19478 			case OPTIONAL:
19479 			case OPTIONS:
19480 			case ORDINALITY:
19481 			case ORGANIZATION:
19482 			case OTHERS:
19483 			case OWNER:
19484 			case PACK_KEYS:
19485 			case PAGE:
19486 			case PARSER:
19487 			case PARTIAL:
19488 			case PARTITIONING:
19489 			case PARTITIONS:
19490 			case PASSWORD:
19491 			case PASSWORD_LOCK_TIME:
19492 			case PATH:
19493 			case PERSIST:
19494 			case PERSIST_ONLY:
19495 			case PHASE:
19496 			case PLUGIN:
19497 			case PLUGINS:
19498 			case PLUGIN_DIR:
19499 			case POINT:
19500 			case POLYGON:
19501 			case PORT:
19502 			case PRECEDES:
19503 			case PRECEDING:
19504 			case PREPARE:
19505 			case PRESERVE:
19506 			case PREV:
19507 			case PRIMARY:
19508 			case PRIVILEGES:
19509 			case PRIVILEGE_CHECKS_USER:
19510 			case PROCESS:
19511 			case PROCESSLIST:
19512 			case PROFILE:
19513 			case PROFILES:
19514 			case PROXY:
19515 			case QUARTER:
19516 			case QUERY:
19517 			case QUICK:
19518 			case RANDOM:
19519 			case READ_ONLY:
19520 			case REBUILD:
19521 			case RECOVER:
19522 			case REDO_BUFFER_SIZE:
19523 			case REDUNDANT:
19524 			case REFERENCE:
19525 			case RELAY:
19526 			case RELAYLOG:
19527 			case RELAY_LOG_FILE:
19528 			case RELAY_LOG_POS:
19529 			case RELAY_THREAD:
19530 			case RELOAD:
19531 			case REMOVE:
19532 			case REORGANIZE:
19533 			case REPAIR:
19534 			case REPEATABLE:
19535 			case REPLICATE_DO_DB:
19536 			case REPLICATE_DO_TABLE:
19537 			case REPLICATE_IGNORE_DB:
19538 			case REPLICATE_IGNORE_TABLE:
19539 			case REPLICATE_REWRITE_DB:
19540 			case REPLICATE_WILD_DO_TABLE:
19541 			case REPLICATE_WILD_IGNORE_TABLE:
19542 			case REPLICATION:
19543 			case REQUIRE_ROW_FORMAT:
19544 			case RESET:
19545 			case RESOURCE:
19546 			case RESPECT:
19547 			case RESTART:
19548 			case RESTORE:
19549 			case RESUME:
19550 			case RETAIN:
19551 			case RETURNED_SQLSTATE:
19552 			case RETURNING:
19553 			case RETURNS:
19554 			case REUSE:
19555 			case REVERSE:
19556 			case ROLE:
19557 			case ROLLBACK:
19558 			case ROLLUP:
19559 			case ROTATE:
19560 			case ROUTINE:
19561 			case ROW_COUNT:
19562 			case ROW_FORMAT:
19563 			case RTREE:
19564 			case SAVEPOINT:
19565 			case SCHEDULE:
19566 			case SCHEMA_NAME:
19567 			case SECOND:
19568 			case SECONDARY:
19569 			case SECONDARY_ENGINE:
19570 			case SECONDARY_ENGINE_ATTRIBUTE:
19571 			case SECONDARY_LOAD:
19572 			case SECONDARY_UNLOAD:
19573 			case SECURITY:
19574 			case SERIAL:
19575 			case SERIALIZABLE:
19576 			case SERVER:
19577 			case SESSION:
19578 			case SHARE:
19579 			case SHUTDOWN:
19580 			case SIGNED:
19581 			case SIMPLE:
19582 			case SLAVE:
19583 			case SLOW:
19584 			case SNAPSHOT:
19585 			case SOCKET:
19586 			case SONAME:
19587 			case SOUNDS:
19588 			case SOURCE:
19589 			case SQL_AFTER_GTIDS:
19590 			case SQL_AFTER_MTS_GAPS:
19591 			case SQL_BEFORE_GTIDS:
19592 			case SQL_BUFFER_RESULT:
19593 			case SQL_NO_CACHE:
19594 			case SQL_THREAD:
19595 			case SRID:
19596 			case STACKED:
19597 			case START:
19598 			case STARTS:
19599 			case STATS_AUTO_RECALC:
19600 			case STATS_PERSISTENT:
19601 			case STATS_SAMPLE_PAGES:
19602 			case STATUS:
19603 			case STOP:
19604 			case STORAGE:
19605 			case STREAM:
19606 			case STRING:
19607 			case SUBCLASS_ORIGIN:
19608 			case SUBJECT:
19609 			case SUBPARTITION:
19610 			case SUBPARTITIONS:
19611 			case SUPER:
19612 			case SUSPEND:
19613 			case SWAPS:
19614 			case SWITCHES:
19615 			case SYSTEM:
19616 			case TABLE:
19617 			case TABLES:
19618 			case TABLESPACE:
19619 			case TABLE_CHECKSUM:
19620 			case TABLE_NAME:
19621 			case TEMPORARY:
19622 			case TEMPTABLE:
19623 			case TEXT:
19624 			case THAN:
19625 			case THREAD_PRIORITY:
19626 			case TIES:
19627 			case TIME:
19628 			case TIMESTAMP:
19629 			case TIMESTAMP_ADD:
19630 			case TIMESTAMP_DIFF:
19631 			case TLS:
19632 			case TRANSACTION:
19633 			case TRIGGERS:
19634 			case TRUNCATE:
19635 			case TYPE:
19636 			case TYPES:
19637 			case UNBOUNDED:
19638 			case UNCOMMITTED:
19639 			case UNDEFINED:
19640 			case UNDOFILE:
19641 			case UNDO_BUFFER_SIZE:
19642 			case UNICODE:
19643 			case UNINSTALL:
19644 			case UNKNOWN:
19645 			case UNTIL:
19646 			case UPGRADE:
19647 			case USER:
19648 			case USER_RESOURCES:
19649 			case USE_FRM:
19650 			case UTC_DATE:
19651 			case UTC_TIME:
19652 			case UTC_TIMESTAMP:
19653 			case VALIDATION:
19654 			case VALUE:
19655 			case VARIABLES:
19656 			case VCPU:
19657 			case VIEW:
19658 			case VISIBLE:
19659 			case WAIT:
19660 			case WARNINGS:
19661 			case WEEK:
19662 			case WEIGHT_STRING:
19663 			case WITHOUT:
19664 			case WORK:
19665 			case WRAPPER:
19666 			case X509:
19667 			case XA:
19668 			case XID:
19669 			case XML:
19670 			case YEAR:
19671 			case YEAR_MONTH:
19672 			case DOUBLE_QUOTED_TEXT:
19673 			case BQUOTA_STRING:
19674 			case UNDERSCORE_CHARSET:
19675 			case IDENTIFIER_:
19676 				{
19677 				setState(1981);
19678 				identifier();
19679 				}
19680 				break;
19681 			default:
19682 				throw new NoViableAltException(this);
19683 			}
19684 			}
19685 		}
19686 		catch (RecognitionException re) {
19687 			_localctx.exception = re;
19688 			_errHandler.reportError(this, re);
19689 			_errHandler.recover(this, re);
19690 		}
19691 		finally {
19692 			exitRule();
19693 		}
19694 		return _localctx;
19695 	}
19696 
19697 	public static class WindowSpecificationContext extends ParserRuleContext {
19698 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
19699 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
19700 		public IdentifierContext identifier() {
19701 			return getRuleContext(IdentifierContext.class,0);
19702 		}
19703 		public TerminalNode PARTITION() { return getToken(HiveStatementParser.PARTITION, 0); }
19704 		public TerminalNode BY() { return getToken(HiveStatementParser.BY, 0); }
19705 		public List<ExprContext> expr() {
19706 			return getRuleContexts(ExprContext.class);
19707 		}
19708 		public ExprContext expr(int i) {
19709 			return getRuleContext(ExprContext.class,i);
19710 		}
19711 		public OrderByClauseContext orderByClause() {
19712 			return getRuleContext(OrderByClauseContext.class,0);
19713 		}
19714 		public FrameClauseContext frameClause() {
19715 			return getRuleContext(FrameClauseContext.class,0);
19716 		}
19717 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
19718 		public TerminalNode COMMA_(int i) {
19719 			return getToken(HiveStatementParser.COMMA_, i);
19720 		}
19721 		public WindowSpecificationContext(ParserRuleContext parent, int invokingState) {
19722 			super(parent, invokingState);
19723 		}
19724 		@Override public int getRuleIndex() { return RULE_windowSpecification; }
19725 		@Override
19726 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
19727 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWindowSpecification(this);
19728 			else return visitor.visitChildren(this);
19729 		}
19730 	}
19731 
19732 	public final WindowSpecificationContext windowSpecification() throws RecognitionException {
19733 		WindowSpecificationContext _localctx = new WindowSpecificationContext(_ctx, getState());
19734 		enterRule(_localctx, 352, RULE_windowSpecification);
19735 		int _la;
19736 		try {
19737 			enterOuterAlt(_localctx, 1);
19738 			{
19739 			setState(1984);
19740 			match(LP_);
19741 			setState(1986);
19742 			_errHandler.sync(this);
19743 			_la = _input.LA(1);
19744 			if (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (GROUP_CONCAT - 47)) | (1L << (CAST - 47)) | (1L << (POSITION - 47)) | (1L << (SUBSTRING - 47)) | (1L << (SUBSTR - 47)) | (1L << (EXTRACT - 47)) | (1L << (TRIM - 47)) | (1L << (LAST_DAY - 47)) | (1L << (TRADITIONAL - 47)) | (1L << (TREE - 47)) | (1L << (MYSQL_MAIN - 47)) | (1L << (MYSQL_ADMIN - 47)) | (1L << (INSTANT - 47)) | (1L << (INPLACE - 47)) | (1L << (COPY - 47)) | (1L << (UL_BINARY - 47)) | (1L << (AUTOCOMMIT - 47)) | (1L << (INNODB - 47)) | (1L << (REDO_LOG - 47)) | (1L << (ACCOUNT - 47)) | (1L << (ACTION - 47)) | (1L << (ACTIVE - 47)) | (1L << (ADMIN - 47)) | (1L << (AFTER - 47)) | (1L << (AGAINST - 47)) | (1L << (AGGREGATE - 47)) | (1L << (ALGORITHM - 47)) | (1L << (ALWAYS - 47)) | (1L << (ANY - 47)) | (1L << (ARRAY - 47)) | (1L << (ASCII - 47)) | (1L << (AT - 47)) | (1L << (ATTRIBUTE - 47)) | (1L << (AUTOEXTEND_SIZE - 47)) | (1L << (AUTO_INCREMENT - 47)) | (1L << (AVG - 47)) | (1L << (BIT_XOR - 47)) | (1L << (AVG_ROW_LENGTH - 47)) | (1L << (BACKUP - 47)) | (1L << (BEGIN - 47)) | (1L << (BINLOG - 47)) | (1L << (BIT - 47)) | (1L << (BLOCK - 47)))) != 0) || ((((_la - 111)) & ~0x3f) == 0 && ((1L << (_la - 111)) & ((1L << (BOOL - 111)) | (1L << (BOOLEAN - 111)) | (1L << (BTREE - 111)) | (1L << (BUCKETS - 111)) | (1L << (BYTE - 111)) | (1L << (CACHE - 111)) | (1L << (CASCADED - 111)) | (1L << (CATALOG_NAME - 111)) | (1L << (CHAIN - 111)) | (1L << (CHANGED - 111)) | (1L << (CHANNEL - 111)) | (1L << (CHARSET - 111)) | (1L << (CHECKSUM - 111)) | (1L << (CIPHER - 111)) | (1L << (CLASS_ORIGIN - 111)) | (1L << (CLIENT - 111)) | (1L << (CLONE - 111)) | (1L << (CLOSE - 111)) | (1L << (COALESCE - 111)) | (1L << (CODE - 111)) | (1L << (COLLATION - 111)) | (1L << (COLUMNS - 111)) | (1L << (COLUMN_FORMAT - 111)) | (1L << (COLUMN_NAME - 111)) | (1L << (COMMENT - 111)) | (1L << (COMMIT - 111)) | (1L << (COMMITTED - 111)) | (1L << (COMPACT - 111)) | (1L << (COMPLETION - 111)) | (1L << (COMPONENT - 111)) | (1L << (COMPRESSED - 111)) | (1L << (COMPRESSION - 111)) | (1L << (CONCURRENT - 111)) | (1L << (CONNECTION - 111)) | (1L << (CONSISTENT - 111)) | (1L << (CONSTRAINT_CATALOG - 111)) | (1L << (CONSTRAINT_NAME - 111)) | (1L << (CONSTRAINT_SCHEMA - 111)) | (1L << (CONTAINS - 111)) | (1L << (CONTEXT - 111)) | (1L << (CPU - 111)) | (1L << (CREATE - 111)) | (1L << (CURRENT - 111)))) != 0) || ((((_la - 179)) & ~0x3f) == 0 && ((1L << (_la - 179)) & ((1L << (CURSOR_NAME - 179)) | (1L << (DATA - 179)) | (1L << (DATAFILE - 179)) | (1L << (DATE - 179)) | (1L << (DATETIME - 179)) | (1L << (DAY - 179)) | (1L << (DAY_MINUTE - 179)) | (1L << (DEALLOCATE - 179)) | (1L << (DEFAULT_AUTH - 179)) | (1L << (DEFINER - 179)) | (1L << (DEFINITION - 179)) | (1L << (DELAY_KEY_WRITE - 179)) | (1L << (DESCRIPTION - 179)) | (1L << (DIAGNOSTICS - 179)) | (1L << (DIRECTORY - 179)) | (1L << (DISABLE - 179)) | (1L << (DISCARD - 179)) | (1L << (DISK - 179)) | (1L << (DO - 179)) | (1L << (DUMPFILE - 179)) | (1L << (DUPLICATE - 179)) | (1L << (DYNAMIC - 179)) | (1L << (ENABLE - 179)) | (1L << (ENCRYPTION - 179)) | (1L << (END - 179)) | (1L << (ENDS - 179)) | (1L << (ENFORCED - 179)) | (1L << (ENGINE - 179)) | (1L << (ENGINES - 179)) | (1L << (ENGINE_ATTRIBUTE - 179)) | (1L << (ENUM - 179)) | (1L << (ERROR - 179)) | (1L << (ERRORS - 179)) | (1L << (ESCAPE - 179)) | (1L << (EVENT - 179)) | (1L << (EVENTS - 179)) | (1L << (EVERY - 179)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (EXCHANGE - 244)) | (1L << (EXCLUDE - 244)) | (1L << (EXECUTE - 244)) | (1L << (EXPANSION - 244)) | (1L << (EXPIRE - 244)) | (1L << (EXPORT - 244)) | (1L << (EXTENDED - 244)) | (1L << (EXTENT_SIZE - 244)) | (1L << (FAILED_LOGIN_ATTEMPTS - 244)) | (1L << (FAST - 244)) | (1L << (FAULTS - 244)) | (1L << (FILE - 244)) | (1L << (FILE_BLOCK_SIZE - 244)) | (1L << (FILTER - 244)) | (1L << (FIRST - 244)) | (1L << (FIXED - 244)) | (1L << (FLUSH - 244)) | (1L << (FOLLOWING - 244)) | (1L << (FOLLOWS - 244)) | (1L << (FORMAT - 244)) | (1L << (FOUND - 244)) | (1L << (FULL - 244)) | (1L << (GENERAL - 244)) | (1L << (GEOMETRY - 244)) | (1L << (GEOMETRYCOLLECTION - 244)) | (1L << (GET_FORMAT - 244)) | (1L << (GET_MASTER_PUBLIC_KEY - 244)) | (1L << (GLOBAL - 244)) | (1L << (GRANTS - 244)) | (1L << (GROUP_REPLICATION - 244)) | (1L << (HANDLER - 244)) | (1L << (HASH - 244)) | (1L << (HELP - 244)) | (1L << (HISTOGRAM - 244)) | (1L << (HISTORY - 244)) | (1L << (HOST - 244)) | (1L << (HOSTS - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (HOUR - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INACTIVE - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTALL - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVISIBLE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (JSON - 308)) | (1L << (JSON_VALUE - 308)) | (1L << (KEY - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LAST_VALUE - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)))) != 0) || ((((_la - 373)) & ~0x3f) == 0 && ((1L << (_la - 373)) & ((1L << (LINESTRING - 373)) | (1L << (LIST - 373)) | (1L << (LOCAL - 373)) | (1L << (LOCKED - 373)) | (1L << (LOCKS - 373)) | (1L << (LOGFILE - 373)) | (1L << (LOGS - 373)) | (1L << (MASTER - 373)) | (1L << (MASTER_AUTO_POSITION - 373)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 373)) | (1L << (MASTER_CONNECT_RETRY - 373)) | (1L << (MASTER_DELAY - 373)) | (1L << (MASTER_HEARTBEAT_PERIOD - 373)) | (1L << (MASTER_HOST - 373)) | (1L << (MASTER_LOG_FILE - 373)) | (1L << (MASTER_LOG_POS - 373)) | (1L << (MASTER_PASSWORD - 373)) | (1L << (MASTER_PORT - 373)) | (1L << (MASTER_PUBLIC_KEY_PATH - 373)) | (1L << (MASTER_RETRY_COUNT - 373)) | (1L << (MASTER_SERVER_ID - 373)) | (1L << (MASTER_SSL - 373)) | (1L << (MASTER_SSL_CA - 373)) | (1L << (MASTER_SSL_CAPATH - 373)) | (1L << (MASTER_SSL_CERT - 373)) | (1L << (MASTER_SSL_CIPHER - 373)) | (1L << (MASTER_SSL_CRL - 373)) | (1L << (MASTER_SSL_CRLPATH - 373)) | (1L << (MASTER_SSL_KEY - 373)) | (1L << (MASTER_TLS_CIPHERSUITES - 373)) | (1L << (MASTER_TLS_VERSION - 373)) | (1L << (MASTER_USER - 373)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 373)) | (1L << (MAXVALUE - 373)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 373)) | (1L << (MAX_QUERIES_PER_HOUR - 373)) | (1L << (MAX_ROWS - 373)) | (1L << (MAX_SIZE - 373)) | (1L << (MAX_UPDATES_PER_HOUR - 373)) | (1L << (MAX_USER_CONNECTIONS - 373)) | (1L << (MEDIUM - 373)) | (1L << (MEMBER - 373)) | (1L << (MEMORY - 373)) | (1L << (MERGE - 373)) | (1L << (MESSAGE_TEXT - 373)) | (1L << (MICROSECOND - 373)))) != 0) || ((((_la - 437)) & ~0x3f) == 0 && ((1L << (_la - 437)) & ((1L << (MIGRATE - 437)) | (1L << (MINUTE - 437)) | (1L << (MIN_ROWS - 437)) | (1L << (MODE - 437)) | (1L << (MODIFY - 437)) | (1L << (MONTH - 437)) | (1L << (MULTILINESTRING - 437)) | (1L << (MULTIPOINT - 437)) | (1L << (MULTIPOLYGON - 437)) | (1L << (MUTEX - 437)) | (1L << (MYSQL_ERRNO - 437)) | (1L << (NAME - 437)) | (1L << (NAMES - 437)) | (1L << (NATIONAL - 437)) | (1L << (NCHAR - 437)) | (1L << (NDBCLUSTER - 437)) | (1L << (NESTED - 437)) | (1L << (NETWORK_NAMESPACE - 437)) | (1L << (NEVER - 437)) | (1L << (NEW - 437)) | (1L << (NEXT - 437)) | (1L << (NO - 437)) | (1L << (NODEGROUP - 437)) | (1L << (NONE - 437)) | (1L << (NOWAIT - 437)) | (1L << (NO_WAIT - 437)) | (1L << (NULLS - 437)) | (1L << (NUMBER - 437)) | (1L << (NVARCHAR - 437)) | (1L << (OFF - 437)) | (1L << (OFFSET - 437)) | (1L << (OJ - 437)) | (1L << (OLD - 437)) | (1L << (ONE - 437)) | (1L << (ONLY - 437)) | (1L << (OPEN - 437)) | (1L << (OPTIONAL - 437)) | (1L << (OPTIONS - 437)) | (1L << (ORDINALITY - 437)) | (1L << (ORGANIZATION - 437)) | (1L << (OTHERS - 437)))) != 0) || ((((_la - 505)) & ~0x3f) == 0 && ((1L << (_la - 505)) & ((1L << (OWNER - 505)) | (1L << (PACK_KEYS - 505)) | (1L << (PAGE - 505)) | (1L << (PARSER - 505)) | (1L << (PARTIAL - 505)) | (1L << (PARTITIONING - 505)) | (1L << (PARTITIONS - 505)) | (1L << (PASSWORD - 505)) | (1L << (PASSWORD_LOCK_TIME - 505)) | (1L << (PATH - 505)) | (1L << (PERSIST - 505)) | (1L << (PERSIST_ONLY - 505)) | (1L << (PHASE - 505)) | (1L << (PLUGIN - 505)) | (1L << (PLUGINS - 505)) | (1L << (PLUGIN_DIR - 505)) | (1L << (POINT - 505)) | (1L << (POLYGON - 505)) | (1L << (PORT - 505)) | (1L << (PRECEDES - 505)) | (1L << (PRECEDING - 505)) | (1L << (PREPARE - 505)) | (1L << (PRESERVE - 505)) | (1L << (PREV - 505)) | (1L << (PRIMARY - 505)) | (1L << (PRIVILEGES - 505)) | (1L << (PRIVILEGE_CHECKS_USER - 505)) | (1L << (PROCESS - 505)) | (1L << (PROCESSLIST - 505)) | (1L << (PROFILE - 505)) | (1L << (PROFILES - 505)) | (1L << (PROXY - 505)) | (1L << (QUARTER - 505)) | (1L << (QUERY - 505)) | (1L << (QUICK - 505)) | (1L << (RANDOM - 505)) | (1L << (READ_ONLY - 505)) | (1L << (REBUILD - 505)) | (1L << (RECOVER - 505)) | (1L << (REDO_BUFFER_SIZE - 505)) | (1L << (REDUNDANT - 505)) | (1L << (REFERENCE - 505)) | (1L << (RELAY - 505)) | (1L << (RELAYLOG - 505)) | (1L << (RELAY_LOG_FILE - 505)) | (1L << (RELAY_LOG_POS - 505)) | (1L << (RELAY_THREAD - 505)) | (1L << (RELOAD - 505)) | (1L << (REMOVE - 505)))) != 0) || ((((_la - 570)) & ~0x3f) == 0 && ((1L << (_la - 570)) & ((1L << (REORGANIZE - 570)) | (1L << (REPAIR - 570)) | (1L << (REPEATABLE - 570)) | (1L << (REPLICATE_DO_DB - 570)) | (1L << (REPLICATE_DO_TABLE - 570)) | (1L << (REPLICATE_IGNORE_DB - 570)) | (1L << (REPLICATE_IGNORE_TABLE - 570)) | (1L << (REPLICATE_REWRITE_DB - 570)) | (1L << (REPLICATE_WILD_DO_TABLE - 570)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 570)) | (1L << (REPLICATION - 570)) | (1L << (REQUIRE_ROW_FORMAT - 570)) | (1L << (RESET - 570)) | (1L << (RESOURCE - 570)) | (1L << (RESPECT - 570)) | (1L << (RESTART - 570)) | (1L << (RESTORE - 570)) | (1L << (RESUME - 570)) | (1L << (RETAIN - 570)) | (1L << (RETURNED_SQLSTATE - 570)) | (1L << (RETURNING - 570)) | (1L << (RETURNS - 570)) | (1L << (REUSE - 570)) | (1L << (REVERSE - 570)) | (1L << (ROLE - 570)) | (1L << (ROLLBACK - 570)) | (1L << (ROLLUP - 570)) | (1L << (ROTATE - 570)) | (1L << (ROUTINE - 570)) | (1L << (ROW_COUNT - 570)) | (1L << (ROW_FORMAT - 570)) | (1L << (RTREE - 570)) | (1L << (SAVEPOINT - 570)) | (1L << (SCHEDULE - 570)) | (1L << (SCHEMA_NAME - 570)) | (1L << (SECOND - 570)) | (1L << (SECONDARY - 570)) | (1L << (SECONDARY_ENGINE - 570)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 570)) | (1L << (SECONDARY_LOAD - 570)) | (1L << (SECONDARY_UNLOAD - 570)) | (1L << (SECURITY - 570)) | (1L << (SERIAL - 570)))) != 0) || ((((_la - 634)) & ~0x3f) == 0 && ((1L << (_la - 634)) & ((1L << (SERIALIZABLE - 634)) | (1L << (SERVER - 634)) | (1L << (SESSION - 634)) | (1L << (SHARE - 634)) | (1L << (SHUTDOWN - 634)) | (1L << (SIGNED - 634)) | (1L << (SIMPLE - 634)) | (1L << (SLAVE - 634)) | (1L << (SLOW - 634)) | (1L << (SNAPSHOT - 634)) | (1L << (SOCKET - 634)) | (1L << (SONAME - 634)) | (1L << (SOUNDS - 634)) | (1L << (SOURCE - 634)) | (1L << (SQL_AFTER_GTIDS - 634)) | (1L << (SQL_AFTER_MTS_GAPS - 634)) | (1L << (SQL_BEFORE_GTIDS - 634)) | (1L << (SQL_BUFFER_RESULT - 634)) | (1L << (SQL_NO_CACHE - 634)) | (1L << (SQL_THREAD - 634)) | (1L << (SRID - 634)) | (1L << (STACKED - 634)) | (1L << (START - 634)) | (1L << (STARTS - 634)) | (1L << (STATS_AUTO_RECALC - 634)) | (1L << (STATS_PERSISTENT - 634)) | (1L << (STATS_SAMPLE_PAGES - 634)) | (1L << (STATUS - 634)) | (1L << (STOP - 634)) | (1L << (STORAGE - 634)) | (1L << (STREAM - 634)) | (1L << (STRING - 634)) | (1L << (SUBCLASS_ORIGIN - 634)) | (1L << (SUBJECT - 634)) | (1L << (SUBPARTITION - 634)) | (1L << (SUBPARTITIONS - 634)) | (1L << (SUPER - 634)) | (1L << (SUSPEND - 634)) | (1L << (SWAPS - 634)) | (1L << (SWITCHES - 634)) | (1L << (SYSTEM - 634)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (UNDERSCORE_CHARSET - 787)))) != 0) || _la==IDENTIFIER_) {
19745 				{
19746 				setState(1985);
19747 				identifier();
19748 				}
19749 			}
19750 
19751 			setState(1998);
19752 			_errHandler.sync(this);
19753 			_la = _input.LA(1);
19754 			if (_la==PARTITION) {
19755 				{
19756 				setState(1988);
19757 				match(PARTITION);
19758 				setState(1989);
19759 				match(BY);
19760 				setState(1990);
19761 				expr(0);
19762 				setState(1995);
19763 				_errHandler.sync(this);
19764 				_la = _input.LA(1);
19765 				while (_la==COMMA_) {
19766 					{
19767 					{
19768 					setState(1991);
19769 					match(COMMA_);
19770 					setState(1992);
19771 					expr(0);
19772 					}
19773 					}
19774 					setState(1997);
19775 					_errHandler.sync(this);
19776 					_la = _input.LA(1);
19777 				}
19778 				}
19779 			}
19780 
19781 			setState(2001);
19782 			_errHandler.sync(this);
19783 			_la = _input.LA(1);
19784 			if (_la==ORDER) {
19785 				{
19786 				setState(2000);
19787 				orderByClause();
19788 				}
19789 			}
19790 
19791 			setState(2004);
19792 			_errHandler.sync(this);
19793 			_la = _input.LA(1);
19794 			if (_la==RANGE || _la==ROWS) {
19795 				{
19796 				setState(2003);
19797 				frameClause();
19798 				}
19799 			}
19800 
19801 			setState(2006);
19802 			match(RP_);
19803 			}
19804 		}
19805 		catch (RecognitionException re) {
19806 			_localctx.exception = re;
19807 			_errHandler.reportError(this, re);
19808 			_errHandler.recover(this, re);
19809 		}
19810 		finally {
19811 			exitRule();
19812 		}
19813 		return _localctx;
19814 	}
19815 
19816 	public static class FrameClauseContext extends ParserRuleContext {
19817 		public TerminalNode ROWS() { return getToken(HiveStatementParser.ROWS, 0); }
19818 		public TerminalNode RANGE() { return getToken(HiveStatementParser.RANGE, 0); }
19819 		public FrameStartContext frameStart() {
19820 			return getRuleContext(FrameStartContext.class,0);
19821 		}
19822 		public FrameBetweenContext frameBetween() {
19823 			return getRuleContext(FrameBetweenContext.class,0);
19824 		}
19825 		public FrameClauseContext(ParserRuleContext parent, int invokingState) {
19826 			super(parent, invokingState);
19827 		}
19828 		@Override public int getRuleIndex() { return RULE_frameClause; }
19829 		@Override
19830 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
19831 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFrameClause(this);
19832 			else return visitor.visitChildren(this);
19833 		}
19834 	}
19835 
19836 	public final FrameClauseContext frameClause() throws RecognitionException {
19837 		FrameClauseContext _localctx = new FrameClauseContext(_ctx, getState());
19838 		enterRule(_localctx, 354, RULE_frameClause);
19839 		int _la;
19840 		try {
19841 			enterOuterAlt(_localctx, 1);
19842 			{
19843 			setState(2008);
19844 			_la = _input.LA(1);
19845 			if ( !(_la==RANGE || _la==ROWS) ) {
19846 			_errHandler.recoverInline(this);
19847 			}
19848 			else {
19849 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
19850 				_errHandler.reportMatch(this);
19851 				consume();
19852 			}
19853 			setState(2011);
19854 			_errHandler.sync(this);
19855 			switch (_input.LA(1)) {
19856 			case NOT_:
19857 			case TILDE_:
19858 			case PLUS_:
19859 			case MINUS_:
19860 			case LP_:
19861 			case LBE_:
19862 			case QUESTION_:
19863 			case AT_:
19864 			case MAX:
19865 			case MIN:
19866 			case SUM:
19867 			case COUNT:
19868 			case GROUP_CONCAT:
19869 			case CAST:
19870 			case POSITION:
19871 			case SUBSTRING:
19872 			case SUBSTR:
19873 			case EXTRACT:
19874 			case TRIM:
19875 			case LAST_DAY:
19876 			case TRADITIONAL:
19877 			case TREE:
19878 			case MYSQL_MAIN:
19879 			case MYSQL_ADMIN:
19880 			case INSTANT:
19881 			case INPLACE:
19882 			case COPY:
19883 			case UL_BINARY:
19884 			case AUTOCOMMIT:
19885 			case INNODB:
19886 			case REDO_LOG:
19887 			case ACCOUNT:
19888 			case ACTION:
19889 			case ACTIVE:
19890 			case ADMIN:
19891 			case AFTER:
19892 			case AGAINST:
19893 			case AGGREGATE:
19894 			case ALGORITHM:
19895 			case ALWAYS:
19896 			case ANY:
19897 			case ARRAY:
19898 			case ASCII:
19899 			case AT:
19900 			case ATTRIBUTE:
19901 			case AUTOEXTEND_SIZE:
19902 			case AUTO_INCREMENT:
19903 			case AVG:
19904 			case BIT_XOR:
19905 			case AVG_ROW_LENGTH:
19906 			case BACKUP:
19907 			case BEGIN:
19908 			case BINARY:
19909 			case BINLOG:
19910 			case BIT:
19911 			case BLOCK:
19912 			case BOOL:
19913 			case BOOLEAN:
19914 			case BTREE:
19915 			case BUCKETS:
19916 			case BYTE:
19917 			case CACHE:
19918 			case CASCADED:
19919 			case CASE:
19920 			case CATALOG_NAME:
19921 			case CHAIN:
19922 			case CHANGED:
19923 			case CHANNEL:
19924 			case CHAR:
19925 			case CHARSET:
19926 			case CHECKSUM:
19927 			case CIPHER:
19928 			case CLASS_ORIGIN:
19929 			case CLIENT:
19930 			case CLONE:
19931 			case CLOSE:
19932 			case COALESCE:
19933 			case CODE:
19934 			case COLLATION:
19935 			case COLUMNS:
19936 			case COLUMN_FORMAT:
19937 			case COLUMN_NAME:
19938 			case COMMENT:
19939 			case COMMIT:
19940 			case COMMITTED:
19941 			case COMPACT:
19942 			case COMPLETION:
19943 			case COMPONENT:
19944 			case COMPRESSED:
19945 			case COMPRESSION:
19946 			case CONCURRENT:
19947 			case CONNECTION:
19948 			case CONSISTENT:
19949 			case CONSTRAINT_CATALOG:
19950 			case CONSTRAINT_NAME:
19951 			case CONSTRAINT_SCHEMA:
19952 			case CONTAINS:
19953 			case CONTEXT:
19954 			case CONVERT:
19955 			case CPU:
19956 			case CREATE:
19957 			case CUME_DIST:
19958 			case CURRENT:
19959 			case CURRENT_DATE:
19960 			case CURRENT_TIME:
19961 			case CURRENT_TIMESTAMP:
19962 			case CURRENT_USER:
19963 			case CURSOR_NAME:
19964 			case DATA:
19965 			case DATABASE:
19966 			case DATAFILE:
19967 			case DATE:
19968 			case DATETIME:
19969 			case DAY:
19970 			case DAY_MINUTE:
19971 			case DEALLOCATE:
19972 			case DEFAULT_AUTH:
19973 			case DEFINER:
19974 			case DEFINITION:
19975 			case DELAY_KEY_WRITE:
19976 			case DENSE_RANK:
19977 			case DESCRIPTION:
19978 			case DIAGNOSTICS:
19979 			case DIRECTORY:
19980 			case DISABLE:
19981 			case DISCARD:
19982 			case DISK:
19983 			case DO:
19984 			case DUMPFILE:
19985 			case DUPLICATE:
19986 			case DYNAMIC:
19987 			case ENABLE:
19988 			case ENCRYPTION:
19989 			case END:
19990 			case ENDS:
19991 			case ENFORCED:
19992 			case ENGINE:
19993 			case ENGINES:
19994 			case ENGINE_ATTRIBUTE:
19995 			case ENUM:
19996 			case ERROR:
19997 			case ERRORS:
19998 			case ESCAPE:
19999 			case EVENT:
20000 			case EVENTS:
20001 			case EVERY:
20002 			case EXCHANGE:
20003 			case EXCLUDE:
20004 			case EXECUTE:
20005 			case EXISTS:
20006 			case EXPANSION:
20007 			case EXPIRE:
20008 			case EXPORT:
20009 			case EXTENDED:
20010 			case EXTENT_SIZE:
20011 			case FAILED_LOGIN_ATTEMPTS:
20012 			case FALSE:
20013 			case FAST:
20014 			case FAULTS:
20015 			case FILE:
20016 			case FILE_BLOCK_SIZE:
20017 			case FILTER:
20018 			case FIRST:
20019 			case FIRST_VALUE:
20020 			case FIXED:
20021 			case FLUSH:
20022 			case FOLLOWING:
20023 			case FOLLOWS:
20024 			case FORMAT:
20025 			case FOUND:
20026 			case FULL:
20027 			case GENERAL:
20028 			case GEOMETRY:
20029 			case GEOMETRYCOLLECTION:
20030 			case GET_FORMAT:
20031 			case GET_MASTER_PUBLIC_KEY:
20032 			case GLOBAL:
20033 			case GRANTS:
20034 			case GROUP_REPLICATION:
20035 			case HANDLER:
20036 			case HASH:
20037 			case HELP:
20038 			case HISTOGRAM:
20039 			case HISTORY:
20040 			case HOST:
20041 			case HOSTS:
20042 			case HOUR:
20043 			case IDENTIFIED:
20044 			case IF:
20045 			case IGNORE_SERVER_IDS:
20046 			case IMPORT:
20047 			case INACTIVE:
20048 			case INDEXES:
20049 			case INITIAL_SIZE:
20050 			case INSERT:
20051 			case INSERT_METHOD:
20052 			case INSTALL:
20053 			case INSTANCE:
20054 			case INTERVAL:
20055 			case INVISIBLE:
20056 			case INVOKER:
20057 			case IO:
20058 			case IPC:
20059 			case ISOLATION:
20060 			case ISSUER:
20061 			case JSON:
20062 			case JSON_TABLE:
20063 			case JSON_VALUE:
20064 			case KEY:
20065 			case KEY_BLOCK_SIZE:
20066 			case LAG:
20067 			case LANGUAGE:
20068 			case LAST:
20069 			case LAST_VALUE:
20070 			case LEAD:
20071 			case LEAVES:
20072 			case LEFT:
20073 			case LESS:
20074 			case LEVEL:
20075 			case LINESTRING:
20076 			case LIST:
20077 			case LOCAL:
20078 			case LOCALTIME:
20079 			case LOCALTIMESTAMP:
20080 			case LOCKED:
20081 			case LOCKS:
20082 			case LOGFILE:
20083 			case LOGS:
20084 			case MASTER:
20085 			case MASTER_AUTO_POSITION:
20086 			case MASTER_COMPRESSION_ALGORITHM:
20087 			case MASTER_CONNECT_RETRY:
20088 			case MASTER_DELAY:
20089 			case MASTER_HEARTBEAT_PERIOD:
20090 			case MASTER_HOST:
20091 			case MASTER_LOG_FILE:
20092 			case MASTER_LOG_POS:
20093 			case MASTER_PASSWORD:
20094 			case MASTER_PORT:
20095 			case MASTER_PUBLIC_KEY_PATH:
20096 			case MASTER_RETRY_COUNT:
20097 			case MASTER_SERVER_ID:
20098 			case MASTER_SSL:
20099 			case MASTER_SSL_CA:
20100 			case MASTER_SSL_CAPATH:
20101 			case MASTER_SSL_CERT:
20102 			case MASTER_SSL_CIPHER:
20103 			case MASTER_SSL_CRL:
20104 			case MASTER_SSL_CRLPATH:
20105 			case MASTER_SSL_KEY:
20106 			case MASTER_TLS_CIPHERSUITES:
20107 			case MASTER_TLS_VERSION:
20108 			case MASTER_USER:
20109 			case MASTER_ZSTD_COMPRESSION_LEVEL:
20110 			case MATCH:
20111 			case MAXVALUE:
20112 			case MAX_CONNECTIONS_PER_HOUR:
20113 			case MAX_QUERIES_PER_HOUR:
20114 			case MAX_ROWS:
20115 			case MAX_SIZE:
20116 			case MAX_UPDATES_PER_HOUR:
20117 			case MAX_USER_CONNECTIONS:
20118 			case MEDIUM:
20119 			case MEMBER:
20120 			case MEMORY:
20121 			case MERGE:
20122 			case MESSAGE_TEXT:
20123 			case MICROSECOND:
20124 			case MIGRATE:
20125 			case MINUTE:
20126 			case MIN_ROWS:
20127 			case MOD:
20128 			case MODE:
20129 			case MODIFY:
20130 			case MONTH:
20131 			case MULTILINESTRING:
20132 			case MULTIPOINT:
20133 			case MULTIPOLYGON:
20134 			case MUTEX:
20135 			case MYSQL_ERRNO:
20136 			case NAME:
20137 			case NAMES:
20138 			case NATIONAL:
20139 			case NCHAR:
20140 			case NDBCLUSTER:
20141 			case NESTED:
20142 			case NETWORK_NAMESPACE:
20143 			case NEVER:
20144 			case NEW:
20145 			case NEXT:
20146 			case NO:
20147 			case NODEGROUP:
20148 			case NONE:
20149 			case NOT:
20150 			case NOWAIT:
20151 			case NO_WAIT:
20152 			case NTH_VALUE:
20153 			case NTILE:
20154 			case NULL:
20155 			case NULLS:
20156 			case NUMBER:
20157 			case NVARCHAR:
20158 			case OFF:
20159 			case OFFSET:
20160 			case OJ:
20161 			case OLD:
20162 			case ONE:
20163 			case ONLY:
20164 			case OPEN:
20165 			case OPTIONAL:
20166 			case OPTIONS:
20167 			case ORDINALITY:
20168 			case ORGANIZATION:
20169 			case OTHERS:
20170 			case OWNER:
20171 			case PACK_KEYS:
20172 			case PAGE:
20173 			case PARSER:
20174 			case PARTIAL:
20175 			case PARTITIONING:
20176 			case PARTITIONS:
20177 			case PASSWORD:
20178 			case PASSWORD_LOCK_TIME:
20179 			case PATH:
20180 			case PERCENT_RANK:
20181 			case PERSIST:
20182 			case PERSIST_ONLY:
20183 			case PHASE:
20184 			case PLUGIN:
20185 			case PLUGINS:
20186 			case PLUGIN_DIR:
20187 			case POINT:
20188 			case POLYGON:
20189 			case PORT:
20190 			case PRECEDES:
20191 			case PRECEDING:
20192 			case PREPARE:
20193 			case PRESERVE:
20194 			case PREV:
20195 			case PRIMARY:
20196 			case PRIVILEGES:
20197 			case PRIVILEGE_CHECKS_USER:
20198 			case PROCESS:
20199 			case PROCESSLIST:
20200 			case PROFILE:
20201 			case PROFILES:
20202 			case PROXY:
20203 			case QUARTER:
20204 			case QUERY:
20205 			case QUICK:
20206 			case RANDOM:
20207 			case RANK:
20208 			case READ_ONLY:
20209 			case REBUILD:
20210 			case RECOVER:
20211 			case REDO_BUFFER_SIZE:
20212 			case REDUNDANT:
20213 			case REFERENCE:
20214 			case RELAY:
20215 			case RELAYLOG:
20216 			case RELAY_LOG_FILE:
20217 			case RELAY_LOG_POS:
20218 			case RELAY_THREAD:
20219 			case RELOAD:
20220 			case REMOVE:
20221 			case REORGANIZE:
20222 			case REPAIR:
20223 			case REPEAT:
20224 			case REPEATABLE:
20225 			case REPLACE:
20226 			case REPLICATE_DO_DB:
20227 			case REPLICATE_DO_TABLE:
20228 			case REPLICATE_IGNORE_DB:
20229 			case REPLICATE_IGNORE_TABLE:
20230 			case REPLICATE_REWRITE_DB:
20231 			case REPLICATE_WILD_DO_TABLE:
20232 			case REPLICATE_WILD_IGNORE_TABLE:
20233 			case REPLICATION:
20234 			case REQUIRE_ROW_FORMAT:
20235 			case RESET:
20236 			case RESOURCE:
20237 			case RESPECT:
20238 			case RESTART:
20239 			case RESTORE:
20240 			case RESUME:
20241 			case RETAIN:
20242 			case RETURNED_SQLSTATE:
20243 			case RETURNING:
20244 			case RETURNS:
20245 			case REUSE:
20246 			case REVERSE:
20247 			case RIGHT:
20248 			case ROLE:
20249 			case ROLLBACK:
20250 			case ROLLUP:
20251 			case ROTATE:
20252 			case ROUTINE:
20253 			case ROW:
20254 			case ROW_COUNT:
20255 			case ROW_FORMAT:
20256 			case ROW_NUMBER:
20257 			case RTREE:
20258 			case SAVEPOINT:
20259 			case SCHEDULE:
20260 			case SCHEMA:
20261 			case SCHEMA_NAME:
20262 			case SECOND:
20263 			case SECONDARY:
20264 			case SECONDARY_ENGINE:
20265 			case SECONDARY_ENGINE_ATTRIBUTE:
20266 			case SECONDARY_LOAD:
20267 			case SECONDARY_UNLOAD:
20268 			case SECURITY:
20269 			case SERIAL:
20270 			case SERIALIZABLE:
20271 			case SERVER:
20272 			case SESSION:
20273 			case SHARE:
20274 			case SHUTDOWN:
20275 			case SIGNED:
20276 			case SIMPLE:
20277 			case SLAVE:
20278 			case SLOW:
20279 			case SNAPSHOT:
20280 			case SOCKET:
20281 			case SONAME:
20282 			case SOUNDS:
20283 			case SOURCE:
20284 			case SQL_AFTER_GTIDS:
20285 			case SQL_AFTER_MTS_GAPS:
20286 			case SQL_BEFORE_GTIDS:
20287 			case SQL_BUFFER_RESULT:
20288 			case SQL_NO_CACHE:
20289 			case SQL_THREAD:
20290 			case SRID:
20291 			case STACKED:
20292 			case START:
20293 			case STARTS:
20294 			case STATS_AUTO_RECALC:
20295 			case STATS_PERSISTENT:
20296 			case STATS_SAMPLE_PAGES:
20297 			case STATUS:
20298 			case STOP:
20299 			case STORAGE:
20300 			case STREAM:
20301 			case STRING:
20302 			case SUBCLASS_ORIGIN:
20303 			case SUBJECT:
20304 			case SUBPARTITION:
20305 			case SUBPARTITIONS:
20306 			case SUPER:
20307 			case SUSPEND:
20308 			case SWAPS:
20309 			case SWITCHES:
20310 			case SYSTEM:
20311 			case TABLE:
20312 			case TABLES:
20313 			case TABLESPACE:
20314 			case TABLE_CHECKSUM:
20315 			case TABLE_NAME:
20316 			case TEMPORARY:
20317 			case TEMPTABLE:
20318 			case TEXT:
20319 			case THAN:
20320 			case THREAD_PRIORITY:
20321 			case TIES:
20322 			case TIME:
20323 			case TIMESTAMP:
20324 			case TIMESTAMP_ADD:
20325 			case TIMESTAMP_DIFF:
20326 			case TLS:
20327 			case TRANSACTION:
20328 			case TRIGGERS:
20329 			case TRUE:
20330 			case TRUNCATE:
20331 			case TYPE:
20332 			case TYPES:
20333 			case UNBOUNDED:
20334 			case UNCOMMITTED:
20335 			case UNDEFINED:
20336 			case UNDOFILE:
20337 			case UNDO_BUFFER_SIZE:
20338 			case UNICODE:
20339 			case UNINSTALL:
20340 			case UNKNOWN:
20341 			case UNTIL:
20342 			case UPGRADE:
20343 			case USER:
20344 			case USER_RESOURCES:
20345 			case USE_FRM:
20346 			case UTC_DATE:
20347 			case UTC_TIME:
20348 			case UTC_TIMESTAMP:
20349 			case VALIDATION:
20350 			case VALUE:
20351 			case VALUES:
20352 			case VARIABLES:
20353 			case VCPU:
20354 			case VIEW:
20355 			case VISIBLE:
20356 			case WAIT:
20357 			case WARNINGS:
20358 			case WEEK:
20359 			case WEIGHT_STRING:
20360 			case WITHOUT:
20361 			case WORK:
20362 			case WRAPPER:
20363 			case X509:
20364 			case XA:
20365 			case XID:
20366 			case XML:
20367 			case YEAR:
20368 			case YEAR_MONTH:
20369 			case JSON_ARRAY:
20370 			case JSON_ARRAY_APPEND:
20371 			case JSON_ARRAY_INSERT:
20372 			case JSON_CONTAINS:
20373 			case JSON_CONTAINS_PATH:
20374 			case JSON_DEPTH:
20375 			case JSON_EXTRACT:
20376 			case JSON_INSERT:
20377 			case JSON_KEYS:
20378 			case JSON_LENGTH:
20379 			case JSON_MERGE:
20380 			case JSON_MERGE_PATCH:
20381 			case JSON_MERGE_PRESERVE:
20382 			case JSON_OBJECT:
20383 			case JSON_OVERLAPS:
20384 			case JSON_PRETTY:
20385 			case JSON_QUOTE:
20386 			case JSON_REMOVE:
20387 			case JSON_REPLACE:
20388 			case JSON_SCHEMA_VALID:
20389 			case JSON_SCHEMA_VALIDATION_REPORT:
20390 			case JSON_SEARCH:
20391 			case JSON_SET:
20392 			case JSON_STORAGE_FREE:
20393 			case JSON_STORAGE_SIZE:
20394 			case JSON_TYPE:
20395 			case JSON_UNQUOTE:
20396 			case JSON_VALID:
20397 			case SINGLE_QUOTED_TEXT:
20398 			case DOUBLE_QUOTED_TEXT:
20399 			case BQUOTA_STRING:
20400 			case NCHAR_TEXT:
20401 			case UNDERSCORE_CHARSET:
20402 			case NUMBER_:
20403 			case HEX_DIGIT_:
20404 			case BIT_NUM_:
20405 			case IDENTIFIER_:
20406 			case IP_ADDRESS:
20407 				{
20408 				setState(2009);
20409 				frameStart();
20410 				}
20411 				break;
20412 			case BETWEEN:
20413 				{
20414 				setState(2010);
20415 				frameBetween();
20416 				}
20417 				break;
20418 			default:
20419 				throw new NoViableAltException(this);
20420 			}
20421 			}
20422 		}
20423 		catch (RecognitionException re) {
20424 			_localctx.exception = re;
20425 			_errHandler.reportError(this, re);
20426 			_errHandler.recover(this, re);
20427 		}
20428 		finally {
20429 			exitRule();
20430 		}
20431 		return _localctx;
20432 	}
20433 
20434 	public static class FrameStartContext extends ParserRuleContext {
20435 		public TerminalNode CURRENT() { return getToken(HiveStatementParser.CURRENT, 0); }
20436 		public TerminalNode ROW() { return getToken(HiveStatementParser.ROW, 0); }
20437 		public TerminalNode UNBOUNDED() { return getToken(HiveStatementParser.UNBOUNDED, 0); }
20438 		public TerminalNode PRECEDING() { return getToken(HiveStatementParser.PRECEDING, 0); }
20439 		public TerminalNode FOLLOWING() { return getToken(HiveStatementParser.FOLLOWING, 0); }
20440 		public ExprContext expr() {
20441 			return getRuleContext(ExprContext.class,0);
20442 		}
20443 		public FrameStartContext(ParserRuleContext parent, int invokingState) {
20444 			super(parent, invokingState);
20445 		}
20446 		@Override public int getRuleIndex() { return RULE_frameStart; }
20447 		@Override
20448 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
20449 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFrameStart(this);
20450 			else return visitor.visitChildren(this);
20451 		}
20452 	}
20453 
20454 	public final FrameStartContext frameStart() throws RecognitionException {
20455 		FrameStartContext _localctx = new FrameStartContext(_ctx, getState());
20456 		enterRule(_localctx, 356, RULE_frameStart);
20457 		try {
20458 			setState(2025);
20459 			_errHandler.sync(this);
20460 			switch ( getInterpreter().adaptivePredict(_input,229,_ctx) ) {
20461 			case 1:
20462 				enterOuterAlt(_localctx, 1);
20463 				{
20464 				setState(2013);
20465 				match(CURRENT);
20466 				setState(2014);
20467 				match(ROW);
20468 				}
20469 				break;
20470 			case 2:
20471 				enterOuterAlt(_localctx, 2);
20472 				{
20473 				setState(2015);
20474 				match(UNBOUNDED);
20475 				setState(2016);
20476 				match(PRECEDING);
20477 				}
20478 				break;
20479 			case 3:
20480 				enterOuterAlt(_localctx, 3);
20481 				{
20482 				setState(2017);
20483 				match(UNBOUNDED);
20484 				setState(2018);
20485 				match(FOLLOWING);
20486 				}
20487 				break;
20488 			case 4:
20489 				enterOuterAlt(_localctx, 4);
20490 				{
20491 				setState(2019);
20492 				expr(0);
20493 				setState(2020);
20494 				match(PRECEDING);
20495 				}
20496 				break;
20497 			case 5:
20498 				enterOuterAlt(_localctx, 5);
20499 				{
20500 				setState(2022);
20501 				expr(0);
20502 				setState(2023);
20503 				match(FOLLOWING);
20504 				}
20505 				break;
20506 			}
20507 		}
20508 		catch (RecognitionException re) {
20509 			_localctx.exception = re;
20510 			_errHandler.reportError(this, re);
20511 			_errHandler.recover(this, re);
20512 		}
20513 		finally {
20514 			exitRule();
20515 		}
20516 		return _localctx;
20517 	}
20518 
20519 	public static class FrameEndContext extends ParserRuleContext {
20520 		public FrameStartContext frameStart() {
20521 			return getRuleContext(FrameStartContext.class,0);
20522 		}
20523 		public FrameEndContext(ParserRuleContext parent, int invokingState) {
20524 			super(parent, invokingState);
20525 		}
20526 		@Override public int getRuleIndex() { return RULE_frameEnd; }
20527 		@Override
20528 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
20529 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFrameEnd(this);
20530 			else return visitor.visitChildren(this);
20531 		}
20532 	}
20533 
20534 	public final FrameEndContext frameEnd() throws RecognitionException {
20535 		FrameEndContext _localctx = new FrameEndContext(_ctx, getState());
20536 		enterRule(_localctx, 358, RULE_frameEnd);
20537 		try {
20538 			enterOuterAlt(_localctx, 1);
20539 			{
20540 			setState(2027);
20541 			frameStart();
20542 			}
20543 		}
20544 		catch (RecognitionException re) {
20545 			_localctx.exception = re;
20546 			_errHandler.reportError(this, re);
20547 			_errHandler.recover(this, re);
20548 		}
20549 		finally {
20550 			exitRule();
20551 		}
20552 		return _localctx;
20553 	}
20554 
20555 	public static class FrameBetweenContext extends ParserRuleContext {
20556 		public TerminalNode BETWEEN() { return getToken(HiveStatementParser.BETWEEN, 0); }
20557 		public FrameStartContext frameStart() {
20558 			return getRuleContext(FrameStartContext.class,0);
20559 		}
20560 		public TerminalNode AND() { return getToken(HiveStatementParser.AND, 0); }
20561 		public FrameEndContext frameEnd() {
20562 			return getRuleContext(FrameEndContext.class,0);
20563 		}
20564 		public FrameBetweenContext(ParserRuleContext parent, int invokingState) {
20565 			super(parent, invokingState);
20566 		}
20567 		@Override public int getRuleIndex() { return RULE_frameBetween; }
20568 		@Override
20569 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
20570 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFrameBetween(this);
20571 			else return visitor.visitChildren(this);
20572 		}
20573 	}
20574 
20575 	public final FrameBetweenContext frameBetween() throws RecognitionException {
20576 		FrameBetweenContext _localctx = new FrameBetweenContext(_ctx, getState());
20577 		enterRule(_localctx, 360, RULE_frameBetween);
20578 		try {
20579 			enterOuterAlt(_localctx, 1);
20580 			{
20581 			setState(2029);
20582 			match(BETWEEN);
20583 			setState(2030);
20584 			frameStart();
20585 			setState(2031);
20586 			match(AND);
20587 			setState(2032);
20588 			frameEnd();
20589 			}
20590 		}
20591 		catch (RecognitionException re) {
20592 			_localctx.exception = re;
20593 			_errHandler.reportError(this, re);
20594 			_errHandler.recover(this, re);
20595 		}
20596 		finally {
20597 			exitRule();
20598 		}
20599 		return _localctx;
20600 	}
20601 
20602 	public static class SpecialFunctionContext extends ParserRuleContext {
20603 		public GroupConcatFunctionContext groupConcatFunction() {
20604 			return getRuleContext(GroupConcatFunctionContext.class,0);
20605 		}
20606 		public WindowFunctionContext windowFunction() {
20607 			return getRuleContext(WindowFunctionContext.class,0);
20608 		}
20609 		public CastFunctionContext castFunction() {
20610 			return getRuleContext(CastFunctionContext.class,0);
20611 		}
20612 		public ConvertFunctionContext convertFunction() {
20613 			return getRuleContext(ConvertFunctionContext.class,0);
20614 		}
20615 		public PositionFunctionContext positionFunction() {
20616 			return getRuleContext(PositionFunctionContext.class,0);
20617 		}
20618 		public SubstringFunctionContext substringFunction() {
20619 			return getRuleContext(SubstringFunctionContext.class,0);
20620 		}
20621 		public ExtractFunctionContext extractFunction() {
20622 			return getRuleContext(ExtractFunctionContext.class,0);
20623 		}
20624 		public CharFunctionContext charFunction() {
20625 			return getRuleContext(CharFunctionContext.class,0);
20626 		}
20627 		public TrimFunctionContext trimFunction() {
20628 			return getRuleContext(TrimFunctionContext.class,0);
20629 		}
20630 		public WeightStringFunctionContext weightStringFunction() {
20631 			return getRuleContext(WeightStringFunctionContext.class,0);
20632 		}
20633 		public ValuesFunctionContext valuesFunction() {
20634 			return getRuleContext(ValuesFunctionContext.class,0);
20635 		}
20636 		public CurrentUserFunctionContext currentUserFunction() {
20637 			return getRuleContext(CurrentUserFunctionContext.class,0);
20638 		}
20639 		public SpecialFunctionContext(ParserRuleContext parent, int invokingState) {
20640 			super(parent, invokingState);
20641 		}
20642 		@Override public int getRuleIndex() { return RULE_specialFunction; }
20643 		@Override
20644 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
20645 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSpecialFunction(this);
20646 			else return visitor.visitChildren(this);
20647 		}
20648 	}
20649 
20650 	public final SpecialFunctionContext specialFunction() throws RecognitionException {
20651 		SpecialFunctionContext _localctx = new SpecialFunctionContext(_ctx, getState());
20652 		enterRule(_localctx, 362, RULE_specialFunction);
20653 		try {
20654 			setState(2046);
20655 			_errHandler.sync(this);
20656 			switch (_input.LA(1)) {
20657 			case GROUP_CONCAT:
20658 				enterOuterAlt(_localctx, 1);
20659 				{
20660 				setState(2034);
20661 				groupConcatFunction();
20662 				}
20663 				break;
20664 			case CUME_DIST:
20665 			case DENSE_RANK:
20666 			case FIRST_VALUE:
20667 			case LAG:
20668 			case LAST_VALUE:
20669 			case LEAD:
20670 			case NTH_VALUE:
20671 			case NTILE:
20672 			case PERCENT_RANK:
20673 			case RANK:
20674 			case ROW_NUMBER:
20675 				enterOuterAlt(_localctx, 2);
20676 				{
20677 				setState(2035);
20678 				windowFunction();
20679 				}
20680 				break;
20681 			case CAST:
20682 				enterOuterAlt(_localctx, 3);
20683 				{
20684 				setState(2036);
20685 				castFunction();
20686 				}
20687 				break;
20688 			case CONVERT:
20689 				enterOuterAlt(_localctx, 4);
20690 				{
20691 				setState(2037);
20692 				convertFunction();
20693 				}
20694 				break;
20695 			case POSITION:
20696 				enterOuterAlt(_localctx, 5);
20697 				{
20698 				setState(2038);
20699 				positionFunction();
20700 				}
20701 				break;
20702 			case SUBSTRING:
20703 			case SUBSTR:
20704 				enterOuterAlt(_localctx, 6);
20705 				{
20706 				setState(2039);
20707 				substringFunction();
20708 				}
20709 				break;
20710 			case EXTRACT:
20711 				enterOuterAlt(_localctx, 7);
20712 				{
20713 				setState(2040);
20714 				extractFunction();
20715 				}
20716 				break;
20717 			case CHAR:
20718 				enterOuterAlt(_localctx, 8);
20719 				{
20720 				setState(2041);
20721 				charFunction();
20722 				}
20723 				break;
20724 			case TRIM:
20725 				enterOuterAlt(_localctx, 9);
20726 				{
20727 				setState(2042);
20728 				trimFunction();
20729 				}
20730 				break;
20731 			case WEIGHT_STRING:
20732 				enterOuterAlt(_localctx, 10);
20733 				{
20734 				setState(2043);
20735 				weightStringFunction();
20736 				}
20737 				break;
20738 			case VALUES:
20739 				enterOuterAlt(_localctx, 11);
20740 				{
20741 				setState(2044);
20742 				valuesFunction();
20743 				}
20744 				break;
20745 			case CURRENT_USER:
20746 				enterOuterAlt(_localctx, 12);
20747 				{
20748 				setState(2045);
20749 				currentUserFunction();
20750 				}
20751 				break;
20752 			default:
20753 				throw new NoViableAltException(this);
20754 			}
20755 		}
20756 		catch (RecognitionException re) {
20757 			_localctx.exception = re;
20758 			_errHandler.reportError(this, re);
20759 			_errHandler.recover(this, re);
20760 		}
20761 		finally {
20762 			exitRule();
20763 		}
20764 		return _localctx;
20765 	}
20766 
20767 	public static class CurrentUserFunctionContext extends ParserRuleContext {
20768 		public TerminalNode CURRENT_USER() { return getToken(HiveStatementParser.CURRENT_USER, 0); }
20769 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
20770 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
20771 		public CurrentUserFunctionContext(ParserRuleContext parent, int invokingState) {
20772 			super(parent, invokingState);
20773 		}
20774 		@Override public int getRuleIndex() { return RULE_currentUserFunction; }
20775 		@Override
20776 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
20777 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCurrentUserFunction(this);
20778 			else return visitor.visitChildren(this);
20779 		}
20780 	}
20781 
20782 	public final CurrentUserFunctionContext currentUserFunction() throws RecognitionException {
20783 		CurrentUserFunctionContext _localctx = new CurrentUserFunctionContext(_ctx, getState());
20784 		enterRule(_localctx, 364, RULE_currentUserFunction);
20785 		try {
20786 			enterOuterAlt(_localctx, 1);
20787 			{
20788 			setState(2048);
20789 			match(CURRENT_USER);
20790 			setState(2051);
20791 			_errHandler.sync(this);
20792 			switch ( getInterpreter().adaptivePredict(_input,231,_ctx) ) {
20793 			case 1:
20794 				{
20795 				setState(2049);
20796 				match(LP_);
20797 				setState(2050);
20798 				match(RP_);
20799 				}
20800 				break;
20801 			}
20802 			}
20803 		}
20804 		catch (RecognitionException re) {
20805 			_localctx.exception = re;
20806 			_errHandler.reportError(this, re);
20807 			_errHandler.recover(this, re);
20808 		}
20809 		finally {
20810 			exitRule();
20811 		}
20812 		return _localctx;
20813 	}
20814 
20815 	public static class GroupConcatFunctionContext extends ParserRuleContext {
20816 		public TerminalNode GROUP_CONCAT() { return getToken(HiveStatementParser.GROUP_CONCAT, 0); }
20817 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
20818 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
20819 		public DistinctContext distinct() {
20820 			return getRuleContext(DistinctContext.class,0);
20821 		}
20822 		public List<ExprContext> expr() {
20823 			return getRuleContexts(ExprContext.class);
20824 		}
20825 		public ExprContext expr(int i) {
20826 			return getRuleContext(ExprContext.class,i);
20827 		}
20828 		public TerminalNode ASTERISK_() { return getToken(HiveStatementParser.ASTERISK_, 0); }
20829 		public OrderByClauseContext orderByClause() {
20830 			return getRuleContext(OrderByClauseContext.class,0);
20831 		}
20832 		public TerminalNode SEPARATOR() { return getToken(HiveStatementParser.SEPARATOR, 0); }
20833 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
20834 		public TerminalNode COMMA_(int i) {
20835 			return getToken(HiveStatementParser.COMMA_, i);
20836 		}
20837 		public GroupConcatFunctionContext(ParserRuleContext parent, int invokingState) {
20838 			super(parent, invokingState);
20839 		}
20840 		@Override public int getRuleIndex() { return RULE_groupConcatFunction; }
20841 		@Override
20842 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
20843 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitGroupConcatFunction(this);
20844 			else return visitor.visitChildren(this);
20845 		}
20846 	}
20847 
20848 	public final GroupConcatFunctionContext groupConcatFunction() throws RecognitionException {
20849 		GroupConcatFunctionContext _localctx = new GroupConcatFunctionContext(_ctx, getState());
20850 		enterRule(_localctx, 366, RULE_groupConcatFunction);
20851 		int _la;
20852 		try {
20853 			enterOuterAlt(_localctx, 1);
20854 			{
20855 			setState(2053);
20856 			match(GROUP_CONCAT);
20857 			setState(2054);
20858 			match(LP_);
20859 			setState(2056);
20860 			_errHandler.sync(this);
20861 			_la = _input.LA(1);
20862 			if (_la==DISTINCT) {
20863 				{
20864 				setState(2055);
20865 				distinct();
20866 				}
20867 			}
20868 
20869 			setState(2067);
20870 			_errHandler.sync(this);
20871 			switch (_input.LA(1)) {
20872 			case NOT_:
20873 			case TILDE_:
20874 			case PLUS_:
20875 			case MINUS_:
20876 			case LP_:
20877 			case LBE_:
20878 			case QUESTION_:
20879 			case AT_:
20880 			case MAX:
20881 			case MIN:
20882 			case SUM:
20883 			case COUNT:
20884 			case GROUP_CONCAT:
20885 			case CAST:
20886 			case POSITION:
20887 			case SUBSTRING:
20888 			case SUBSTR:
20889 			case EXTRACT:
20890 			case TRIM:
20891 			case LAST_DAY:
20892 			case TRADITIONAL:
20893 			case TREE:
20894 			case MYSQL_MAIN:
20895 			case MYSQL_ADMIN:
20896 			case INSTANT:
20897 			case INPLACE:
20898 			case COPY:
20899 			case UL_BINARY:
20900 			case AUTOCOMMIT:
20901 			case INNODB:
20902 			case REDO_LOG:
20903 			case ACCOUNT:
20904 			case ACTION:
20905 			case ACTIVE:
20906 			case ADMIN:
20907 			case AFTER:
20908 			case AGAINST:
20909 			case AGGREGATE:
20910 			case ALGORITHM:
20911 			case ALWAYS:
20912 			case ANY:
20913 			case ARRAY:
20914 			case ASCII:
20915 			case AT:
20916 			case ATTRIBUTE:
20917 			case AUTOEXTEND_SIZE:
20918 			case AUTO_INCREMENT:
20919 			case AVG:
20920 			case BIT_XOR:
20921 			case AVG_ROW_LENGTH:
20922 			case BACKUP:
20923 			case BEGIN:
20924 			case BINARY:
20925 			case BINLOG:
20926 			case BIT:
20927 			case BLOCK:
20928 			case BOOL:
20929 			case BOOLEAN:
20930 			case BTREE:
20931 			case BUCKETS:
20932 			case BYTE:
20933 			case CACHE:
20934 			case CASCADED:
20935 			case CASE:
20936 			case CATALOG_NAME:
20937 			case CHAIN:
20938 			case CHANGED:
20939 			case CHANNEL:
20940 			case CHAR:
20941 			case CHARSET:
20942 			case CHECKSUM:
20943 			case CIPHER:
20944 			case CLASS_ORIGIN:
20945 			case CLIENT:
20946 			case CLONE:
20947 			case CLOSE:
20948 			case COALESCE:
20949 			case CODE:
20950 			case COLLATION:
20951 			case COLUMNS:
20952 			case COLUMN_FORMAT:
20953 			case COLUMN_NAME:
20954 			case COMMENT:
20955 			case COMMIT:
20956 			case COMMITTED:
20957 			case COMPACT:
20958 			case COMPLETION:
20959 			case COMPONENT:
20960 			case COMPRESSED:
20961 			case COMPRESSION:
20962 			case CONCURRENT:
20963 			case CONNECTION:
20964 			case CONSISTENT:
20965 			case CONSTRAINT_CATALOG:
20966 			case CONSTRAINT_NAME:
20967 			case CONSTRAINT_SCHEMA:
20968 			case CONTAINS:
20969 			case CONTEXT:
20970 			case CONVERT:
20971 			case CPU:
20972 			case CREATE:
20973 			case CUME_DIST:
20974 			case CURRENT:
20975 			case CURRENT_DATE:
20976 			case CURRENT_TIME:
20977 			case CURRENT_TIMESTAMP:
20978 			case CURRENT_USER:
20979 			case CURSOR_NAME:
20980 			case DATA:
20981 			case DATABASE:
20982 			case DATAFILE:
20983 			case DATE:
20984 			case DATETIME:
20985 			case DAY:
20986 			case DAY_MINUTE:
20987 			case DEALLOCATE:
20988 			case DEFAULT_AUTH:
20989 			case DEFINER:
20990 			case DEFINITION:
20991 			case DELAY_KEY_WRITE:
20992 			case DENSE_RANK:
20993 			case DESCRIPTION:
20994 			case DIAGNOSTICS:
20995 			case DIRECTORY:
20996 			case DISABLE:
20997 			case DISCARD:
20998 			case DISK:
20999 			case DO:
21000 			case DUMPFILE:
21001 			case DUPLICATE:
21002 			case DYNAMIC:
21003 			case ENABLE:
21004 			case ENCRYPTION:
21005 			case END:
21006 			case ENDS:
21007 			case ENFORCED:
21008 			case ENGINE:
21009 			case ENGINES:
21010 			case ENGINE_ATTRIBUTE:
21011 			case ENUM:
21012 			case ERROR:
21013 			case ERRORS:
21014 			case ESCAPE:
21015 			case EVENT:
21016 			case EVENTS:
21017 			case EVERY:
21018 			case EXCHANGE:
21019 			case EXCLUDE:
21020 			case EXECUTE:
21021 			case EXISTS:
21022 			case EXPANSION:
21023 			case EXPIRE:
21024 			case EXPORT:
21025 			case EXTENDED:
21026 			case EXTENT_SIZE:
21027 			case FAILED_LOGIN_ATTEMPTS:
21028 			case FALSE:
21029 			case FAST:
21030 			case FAULTS:
21031 			case FILE:
21032 			case FILE_BLOCK_SIZE:
21033 			case FILTER:
21034 			case FIRST:
21035 			case FIRST_VALUE:
21036 			case FIXED:
21037 			case FLUSH:
21038 			case FOLLOWING:
21039 			case FOLLOWS:
21040 			case FORMAT:
21041 			case FOUND:
21042 			case FULL:
21043 			case GENERAL:
21044 			case GEOMETRY:
21045 			case GEOMETRYCOLLECTION:
21046 			case GET_FORMAT:
21047 			case GET_MASTER_PUBLIC_KEY:
21048 			case GLOBAL:
21049 			case GRANTS:
21050 			case GROUP_REPLICATION:
21051 			case HANDLER:
21052 			case HASH:
21053 			case HELP:
21054 			case HISTOGRAM:
21055 			case HISTORY:
21056 			case HOST:
21057 			case HOSTS:
21058 			case HOUR:
21059 			case IDENTIFIED:
21060 			case IF:
21061 			case IGNORE_SERVER_IDS:
21062 			case IMPORT:
21063 			case INACTIVE:
21064 			case INDEXES:
21065 			case INITIAL_SIZE:
21066 			case INSERT:
21067 			case INSERT_METHOD:
21068 			case INSTALL:
21069 			case INSTANCE:
21070 			case INTERVAL:
21071 			case INVISIBLE:
21072 			case INVOKER:
21073 			case IO:
21074 			case IPC:
21075 			case ISOLATION:
21076 			case ISSUER:
21077 			case JSON:
21078 			case JSON_TABLE:
21079 			case JSON_VALUE:
21080 			case KEY:
21081 			case KEY_BLOCK_SIZE:
21082 			case LAG:
21083 			case LANGUAGE:
21084 			case LAST:
21085 			case LAST_VALUE:
21086 			case LEAD:
21087 			case LEAVES:
21088 			case LEFT:
21089 			case LESS:
21090 			case LEVEL:
21091 			case LINESTRING:
21092 			case LIST:
21093 			case LOCAL:
21094 			case LOCALTIME:
21095 			case LOCALTIMESTAMP:
21096 			case LOCKED:
21097 			case LOCKS:
21098 			case LOGFILE:
21099 			case LOGS:
21100 			case MASTER:
21101 			case MASTER_AUTO_POSITION:
21102 			case MASTER_COMPRESSION_ALGORITHM:
21103 			case MASTER_CONNECT_RETRY:
21104 			case MASTER_DELAY:
21105 			case MASTER_HEARTBEAT_PERIOD:
21106 			case MASTER_HOST:
21107 			case MASTER_LOG_FILE:
21108 			case MASTER_LOG_POS:
21109 			case MASTER_PASSWORD:
21110 			case MASTER_PORT:
21111 			case MASTER_PUBLIC_KEY_PATH:
21112 			case MASTER_RETRY_COUNT:
21113 			case MASTER_SERVER_ID:
21114 			case MASTER_SSL:
21115 			case MASTER_SSL_CA:
21116 			case MASTER_SSL_CAPATH:
21117 			case MASTER_SSL_CERT:
21118 			case MASTER_SSL_CIPHER:
21119 			case MASTER_SSL_CRL:
21120 			case MASTER_SSL_CRLPATH:
21121 			case MASTER_SSL_KEY:
21122 			case MASTER_TLS_CIPHERSUITES:
21123 			case MASTER_TLS_VERSION:
21124 			case MASTER_USER:
21125 			case MASTER_ZSTD_COMPRESSION_LEVEL:
21126 			case MATCH:
21127 			case MAXVALUE:
21128 			case MAX_CONNECTIONS_PER_HOUR:
21129 			case MAX_QUERIES_PER_HOUR:
21130 			case MAX_ROWS:
21131 			case MAX_SIZE:
21132 			case MAX_UPDATES_PER_HOUR:
21133 			case MAX_USER_CONNECTIONS:
21134 			case MEDIUM:
21135 			case MEMBER:
21136 			case MEMORY:
21137 			case MERGE:
21138 			case MESSAGE_TEXT:
21139 			case MICROSECOND:
21140 			case MIGRATE:
21141 			case MINUTE:
21142 			case MIN_ROWS:
21143 			case MOD:
21144 			case MODE:
21145 			case MODIFY:
21146 			case MONTH:
21147 			case MULTILINESTRING:
21148 			case MULTIPOINT:
21149 			case MULTIPOLYGON:
21150 			case MUTEX:
21151 			case MYSQL_ERRNO:
21152 			case NAME:
21153 			case NAMES:
21154 			case NATIONAL:
21155 			case NCHAR:
21156 			case NDBCLUSTER:
21157 			case NESTED:
21158 			case NETWORK_NAMESPACE:
21159 			case NEVER:
21160 			case NEW:
21161 			case NEXT:
21162 			case NO:
21163 			case NODEGROUP:
21164 			case NONE:
21165 			case NOT:
21166 			case NOWAIT:
21167 			case NO_WAIT:
21168 			case NTH_VALUE:
21169 			case NTILE:
21170 			case NULL:
21171 			case NULLS:
21172 			case NUMBER:
21173 			case NVARCHAR:
21174 			case OFF:
21175 			case OFFSET:
21176 			case OJ:
21177 			case OLD:
21178 			case ONE:
21179 			case ONLY:
21180 			case OPEN:
21181 			case OPTIONAL:
21182 			case OPTIONS:
21183 			case ORDINALITY:
21184 			case ORGANIZATION:
21185 			case OTHERS:
21186 			case OWNER:
21187 			case PACK_KEYS:
21188 			case PAGE:
21189 			case PARSER:
21190 			case PARTIAL:
21191 			case PARTITIONING:
21192 			case PARTITIONS:
21193 			case PASSWORD:
21194 			case PASSWORD_LOCK_TIME:
21195 			case PATH:
21196 			case PERCENT_RANK:
21197 			case PERSIST:
21198 			case PERSIST_ONLY:
21199 			case PHASE:
21200 			case PLUGIN:
21201 			case PLUGINS:
21202 			case PLUGIN_DIR:
21203 			case POINT:
21204 			case POLYGON:
21205 			case PORT:
21206 			case PRECEDES:
21207 			case PRECEDING:
21208 			case PREPARE:
21209 			case PRESERVE:
21210 			case PREV:
21211 			case PRIMARY:
21212 			case PRIVILEGES:
21213 			case PRIVILEGE_CHECKS_USER:
21214 			case PROCESS:
21215 			case PROCESSLIST:
21216 			case PROFILE:
21217 			case PROFILES:
21218 			case PROXY:
21219 			case QUARTER:
21220 			case QUERY:
21221 			case QUICK:
21222 			case RANDOM:
21223 			case RANK:
21224 			case READ_ONLY:
21225 			case REBUILD:
21226 			case RECOVER:
21227 			case REDO_BUFFER_SIZE:
21228 			case REDUNDANT:
21229 			case REFERENCE:
21230 			case RELAY:
21231 			case RELAYLOG:
21232 			case RELAY_LOG_FILE:
21233 			case RELAY_LOG_POS:
21234 			case RELAY_THREAD:
21235 			case RELOAD:
21236 			case REMOVE:
21237 			case REORGANIZE:
21238 			case REPAIR:
21239 			case REPEAT:
21240 			case REPEATABLE:
21241 			case REPLACE:
21242 			case REPLICATE_DO_DB:
21243 			case REPLICATE_DO_TABLE:
21244 			case REPLICATE_IGNORE_DB:
21245 			case REPLICATE_IGNORE_TABLE:
21246 			case REPLICATE_REWRITE_DB:
21247 			case REPLICATE_WILD_DO_TABLE:
21248 			case REPLICATE_WILD_IGNORE_TABLE:
21249 			case REPLICATION:
21250 			case REQUIRE_ROW_FORMAT:
21251 			case RESET:
21252 			case RESOURCE:
21253 			case RESPECT:
21254 			case RESTART:
21255 			case RESTORE:
21256 			case RESUME:
21257 			case RETAIN:
21258 			case RETURNED_SQLSTATE:
21259 			case RETURNING:
21260 			case RETURNS:
21261 			case REUSE:
21262 			case REVERSE:
21263 			case RIGHT:
21264 			case ROLE:
21265 			case ROLLBACK:
21266 			case ROLLUP:
21267 			case ROTATE:
21268 			case ROUTINE:
21269 			case ROW:
21270 			case ROW_COUNT:
21271 			case ROW_FORMAT:
21272 			case ROW_NUMBER:
21273 			case RTREE:
21274 			case SAVEPOINT:
21275 			case SCHEDULE:
21276 			case SCHEMA:
21277 			case SCHEMA_NAME:
21278 			case SECOND:
21279 			case SECONDARY:
21280 			case SECONDARY_ENGINE:
21281 			case SECONDARY_ENGINE_ATTRIBUTE:
21282 			case SECONDARY_LOAD:
21283 			case SECONDARY_UNLOAD:
21284 			case SECURITY:
21285 			case SERIAL:
21286 			case SERIALIZABLE:
21287 			case SERVER:
21288 			case SESSION:
21289 			case SHARE:
21290 			case SHUTDOWN:
21291 			case SIGNED:
21292 			case SIMPLE:
21293 			case SLAVE:
21294 			case SLOW:
21295 			case SNAPSHOT:
21296 			case SOCKET:
21297 			case SONAME:
21298 			case SOUNDS:
21299 			case SOURCE:
21300 			case SQL_AFTER_GTIDS:
21301 			case SQL_AFTER_MTS_GAPS:
21302 			case SQL_BEFORE_GTIDS:
21303 			case SQL_BUFFER_RESULT:
21304 			case SQL_NO_CACHE:
21305 			case SQL_THREAD:
21306 			case SRID:
21307 			case STACKED:
21308 			case START:
21309 			case STARTS:
21310 			case STATS_AUTO_RECALC:
21311 			case STATS_PERSISTENT:
21312 			case STATS_SAMPLE_PAGES:
21313 			case STATUS:
21314 			case STOP:
21315 			case STORAGE:
21316 			case STREAM:
21317 			case STRING:
21318 			case SUBCLASS_ORIGIN:
21319 			case SUBJECT:
21320 			case SUBPARTITION:
21321 			case SUBPARTITIONS:
21322 			case SUPER:
21323 			case SUSPEND:
21324 			case SWAPS:
21325 			case SWITCHES:
21326 			case SYSTEM:
21327 			case TABLE:
21328 			case TABLES:
21329 			case TABLESPACE:
21330 			case TABLE_CHECKSUM:
21331 			case TABLE_NAME:
21332 			case TEMPORARY:
21333 			case TEMPTABLE:
21334 			case TEXT:
21335 			case THAN:
21336 			case THREAD_PRIORITY:
21337 			case TIES:
21338 			case TIME:
21339 			case TIMESTAMP:
21340 			case TIMESTAMP_ADD:
21341 			case TIMESTAMP_DIFF:
21342 			case TLS:
21343 			case TRANSACTION:
21344 			case TRIGGERS:
21345 			case TRUE:
21346 			case TRUNCATE:
21347 			case TYPE:
21348 			case TYPES:
21349 			case UNBOUNDED:
21350 			case UNCOMMITTED:
21351 			case UNDEFINED:
21352 			case UNDOFILE:
21353 			case UNDO_BUFFER_SIZE:
21354 			case UNICODE:
21355 			case UNINSTALL:
21356 			case UNKNOWN:
21357 			case UNTIL:
21358 			case UPGRADE:
21359 			case USER:
21360 			case USER_RESOURCES:
21361 			case USE_FRM:
21362 			case UTC_DATE:
21363 			case UTC_TIME:
21364 			case UTC_TIMESTAMP:
21365 			case VALIDATION:
21366 			case VALUE:
21367 			case VALUES:
21368 			case VARIABLES:
21369 			case VCPU:
21370 			case VIEW:
21371 			case VISIBLE:
21372 			case WAIT:
21373 			case WARNINGS:
21374 			case WEEK:
21375 			case WEIGHT_STRING:
21376 			case WITHOUT:
21377 			case WORK:
21378 			case WRAPPER:
21379 			case X509:
21380 			case XA:
21381 			case XID:
21382 			case XML:
21383 			case YEAR:
21384 			case YEAR_MONTH:
21385 			case JSON_ARRAY:
21386 			case JSON_ARRAY_APPEND:
21387 			case JSON_ARRAY_INSERT:
21388 			case JSON_CONTAINS:
21389 			case JSON_CONTAINS_PATH:
21390 			case JSON_DEPTH:
21391 			case JSON_EXTRACT:
21392 			case JSON_INSERT:
21393 			case JSON_KEYS:
21394 			case JSON_LENGTH:
21395 			case JSON_MERGE:
21396 			case JSON_MERGE_PATCH:
21397 			case JSON_MERGE_PRESERVE:
21398 			case JSON_OBJECT:
21399 			case JSON_OVERLAPS:
21400 			case JSON_PRETTY:
21401 			case JSON_QUOTE:
21402 			case JSON_REMOVE:
21403 			case JSON_REPLACE:
21404 			case JSON_SCHEMA_VALID:
21405 			case JSON_SCHEMA_VALIDATION_REPORT:
21406 			case JSON_SEARCH:
21407 			case JSON_SET:
21408 			case JSON_STORAGE_FREE:
21409 			case JSON_STORAGE_SIZE:
21410 			case JSON_TYPE:
21411 			case JSON_UNQUOTE:
21412 			case JSON_VALID:
21413 			case SINGLE_QUOTED_TEXT:
21414 			case DOUBLE_QUOTED_TEXT:
21415 			case BQUOTA_STRING:
21416 			case NCHAR_TEXT:
21417 			case UNDERSCORE_CHARSET:
21418 			case NUMBER_:
21419 			case HEX_DIGIT_:
21420 			case BIT_NUM_:
21421 			case IDENTIFIER_:
21422 			case IP_ADDRESS:
21423 				{
21424 				setState(2058);
21425 				expr(0);
21426 				setState(2063);
21427 				_errHandler.sync(this);
21428 				_la = _input.LA(1);
21429 				while (_la==COMMA_) {
21430 					{
21431 					{
21432 					setState(2059);
21433 					match(COMMA_);
21434 					setState(2060);
21435 					expr(0);
21436 					}
21437 					}
21438 					setState(2065);
21439 					_errHandler.sync(this);
21440 					_la = _input.LA(1);
21441 				}
21442 				}
21443 				break;
21444 			case ASTERISK_:
21445 				{
21446 				setState(2066);
21447 				match(ASTERISK_);
21448 				}
21449 				break;
21450 			case RP_:
21451 			case ORDER:
21452 			case SEPARATOR:
21453 				break;
21454 			default:
21455 				break;
21456 			}
21457 			setState(2070);
21458 			_errHandler.sync(this);
21459 			_la = _input.LA(1);
21460 			if (_la==ORDER) {
21461 				{
21462 				setState(2069);
21463 				orderByClause();
21464 				}
21465 			}
21466 
21467 			setState(2074);
21468 			_errHandler.sync(this);
21469 			_la = _input.LA(1);
21470 			if (_la==SEPARATOR) {
21471 				{
21472 				setState(2072);
21473 				match(SEPARATOR);
21474 				setState(2073);
21475 				expr(0);
21476 				}
21477 			}
21478 
21479 			setState(2076);
21480 			match(RP_);
21481 			}
21482 		}
21483 		catch (RecognitionException re) {
21484 			_localctx.exception = re;
21485 			_errHandler.reportError(this, re);
21486 			_errHandler.recover(this, re);
21487 		}
21488 		finally {
21489 			exitRule();
21490 		}
21491 		return _localctx;
21492 	}
21493 
21494 	public static class WindowFunctionContext extends ParserRuleContext {
21495 		public Token funcName;
21496 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
21497 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
21498 		public WindowingClauseContext windowingClause() {
21499 			return getRuleContext(WindowingClauseContext.class,0);
21500 		}
21501 		public TerminalNode ROW_NUMBER() { return getToken(HiveStatementParser.ROW_NUMBER, 0); }
21502 		public TerminalNode RANK() { return getToken(HiveStatementParser.RANK, 0); }
21503 		public TerminalNode DENSE_RANK() { return getToken(HiveStatementParser.DENSE_RANK, 0); }
21504 		public TerminalNode CUME_DIST() { return getToken(HiveStatementParser.CUME_DIST, 0); }
21505 		public TerminalNode PERCENT_RANK() { return getToken(HiveStatementParser.PERCENT_RANK, 0); }
21506 		public TerminalNode NTILE() { return getToken(HiveStatementParser.NTILE, 0); }
21507 		public SimpleExprContext simpleExpr() {
21508 			return getRuleContext(SimpleExprContext.class,0);
21509 		}
21510 		public ExprContext expr() {
21511 			return getRuleContext(ExprContext.class,0);
21512 		}
21513 		public TerminalNode LEAD() { return getToken(HiveStatementParser.LEAD, 0); }
21514 		public TerminalNode LAG() { return getToken(HiveStatementParser.LAG, 0); }
21515 		public LeadLagInfoContext leadLagInfo() {
21516 			return getRuleContext(LeadLagInfoContext.class,0);
21517 		}
21518 		public NullTreatmentContext nullTreatment() {
21519 			return getRuleContext(NullTreatmentContext.class,0);
21520 		}
21521 		public TerminalNode FIRST_VALUE() { return getToken(HiveStatementParser.FIRST_VALUE, 0); }
21522 		public TerminalNode LAST_VALUE() { return getToken(HiveStatementParser.LAST_VALUE, 0); }
21523 		public TerminalNode COMMA_() { return getToken(HiveStatementParser.COMMA_, 0); }
21524 		public TerminalNode NTH_VALUE() { return getToken(HiveStatementParser.NTH_VALUE, 0); }
21525 		public TerminalNode FROM() { return getToken(HiveStatementParser.FROM, 0); }
21526 		public TerminalNode FIRST() { return getToken(HiveStatementParser.FIRST, 0); }
21527 		public TerminalNode LAST() { return getToken(HiveStatementParser.LAST, 0); }
21528 		public WindowFunctionContext(ParserRuleContext parent, int invokingState) {
21529 			super(parent, invokingState);
21530 		}
21531 		@Override public int getRuleIndex() { return RULE_windowFunction; }
21532 		@Override
21533 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
21534 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWindowFunction(this);
21535 			else return visitor.visitChildren(this);
21536 		}
21537 	}
21538 
21539 	public final WindowFunctionContext windowFunction() throws RecognitionException {
21540 		WindowFunctionContext _localctx = new WindowFunctionContext(_ctx, getState());
21541 		enterRule(_localctx, 368, RULE_windowFunction);
21542 		int _la;
21543 		try {
21544 			setState(2122);
21545 			_errHandler.sync(this);
21546 			switch (_input.LA(1)) {
21547 			case CUME_DIST:
21548 			case DENSE_RANK:
21549 			case PERCENT_RANK:
21550 			case RANK:
21551 			case ROW_NUMBER:
21552 				enterOuterAlt(_localctx, 1);
21553 				{
21554 				setState(2078);
21555 				((WindowFunctionContext)_localctx).funcName = _input.LT(1);
21556 				_la = _input.LA(1);
21557 				if ( !(_la==CUME_DIST || _la==DENSE_RANK || _la==PERCENT_RANK || _la==RANK || _la==ROW_NUMBER) ) {
21558 					((WindowFunctionContext)_localctx).funcName = (Token)_errHandler.recoverInline(this);
21559 				}
21560 				else {
21561 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
21562 					_errHandler.reportMatch(this);
21563 					consume();
21564 				}
21565 				setState(2079);
21566 				match(LP_);
21567 				setState(2080);
21568 				match(RP_);
21569 				setState(2081);
21570 				windowingClause();
21571 				}
21572 				break;
21573 			case NTILE:
21574 				enterOuterAlt(_localctx, 2);
21575 				{
21576 				setState(2082);
21577 				((WindowFunctionContext)_localctx).funcName = match(NTILE);
21578 				{
21579 				setState(2083);
21580 				simpleExpr(0);
21581 				}
21582 				setState(2084);
21583 				windowingClause();
21584 				}
21585 				break;
21586 			case LAG:
21587 			case LEAD:
21588 				enterOuterAlt(_localctx, 3);
21589 				{
21590 				setState(2086);
21591 				((WindowFunctionContext)_localctx).funcName = _input.LT(1);
21592 				_la = _input.LA(1);
21593 				if ( !(_la==LAG || _la==LEAD) ) {
21594 					((WindowFunctionContext)_localctx).funcName = (Token)_errHandler.recoverInline(this);
21595 				}
21596 				else {
21597 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
21598 					_errHandler.reportMatch(this);
21599 					consume();
21600 				}
21601 				setState(2087);
21602 				match(LP_);
21603 				setState(2088);
21604 				expr(0);
21605 				setState(2090);
21606 				_errHandler.sync(this);
21607 				_la = _input.LA(1);
21608 				if (_la==COMMA_) {
21609 					{
21610 					setState(2089);
21611 					leadLagInfo();
21612 					}
21613 				}
21614 
21615 				setState(2092);
21616 				match(RP_);
21617 				setState(2094);
21618 				_errHandler.sync(this);
21619 				_la = _input.LA(1);
21620 				if (_la==IGNORE || _la==RESPECT) {
21621 					{
21622 					setState(2093);
21623 					nullTreatment();
21624 					}
21625 				}
21626 
21627 				setState(2096);
21628 				windowingClause();
21629 				}
21630 				break;
21631 			case FIRST_VALUE:
21632 			case LAST_VALUE:
21633 				enterOuterAlt(_localctx, 4);
21634 				{
21635 				setState(2098);
21636 				((WindowFunctionContext)_localctx).funcName = _input.LT(1);
21637 				_la = _input.LA(1);
21638 				if ( !(_la==FIRST_VALUE || _la==LAST_VALUE) ) {
21639 					((WindowFunctionContext)_localctx).funcName = (Token)_errHandler.recoverInline(this);
21640 				}
21641 				else {
21642 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
21643 					_errHandler.reportMatch(this);
21644 					consume();
21645 				}
21646 				setState(2099);
21647 				match(LP_);
21648 				setState(2100);
21649 				expr(0);
21650 				setState(2101);
21651 				match(RP_);
21652 				setState(2103);
21653 				_errHandler.sync(this);
21654 				_la = _input.LA(1);
21655 				if (_la==IGNORE || _la==RESPECT) {
21656 					{
21657 					setState(2102);
21658 					nullTreatment();
21659 					}
21660 				}
21661 
21662 				setState(2105);
21663 				windowingClause();
21664 				}
21665 				break;
21666 			case NTH_VALUE:
21667 				enterOuterAlt(_localctx, 5);
21668 				{
21669 				setState(2107);
21670 				((WindowFunctionContext)_localctx).funcName = match(NTH_VALUE);
21671 				setState(2108);
21672 				match(LP_);
21673 				setState(2109);
21674 				expr(0);
21675 				setState(2110);
21676 				match(COMMA_);
21677 				setState(2111);
21678 				simpleExpr(0);
21679 				setState(2112);
21680 				match(RP_);
21681 				setState(2115);
21682 				_errHandler.sync(this);
21683 				_la = _input.LA(1);
21684 				if (_la==FROM) {
21685 					{
21686 					setState(2113);
21687 					match(FROM);
21688 					setState(2114);
21689 					_la = _input.LA(1);
21690 					if ( !(_la==FIRST || _la==LAST) ) {
21691 					_errHandler.recoverInline(this);
21692 					}
21693 					else {
21694 						if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
21695 						_errHandler.reportMatch(this);
21696 						consume();
21697 					}
21698 					}
21699 				}
21700 
21701 				setState(2118);
21702 				_errHandler.sync(this);
21703 				_la = _input.LA(1);
21704 				if (_la==IGNORE || _la==RESPECT) {
21705 					{
21706 					setState(2117);
21707 					nullTreatment();
21708 					}
21709 				}
21710 
21711 				setState(2120);
21712 				windowingClause();
21713 				}
21714 				break;
21715 			default:
21716 				throw new NoViableAltException(this);
21717 			}
21718 		}
21719 		catch (RecognitionException re) {
21720 			_localctx.exception = re;
21721 			_errHandler.reportError(this, re);
21722 			_errHandler.recover(this, re);
21723 		}
21724 		finally {
21725 			exitRule();
21726 		}
21727 		return _localctx;
21728 	}
21729 
21730 	public static class WindowingClauseContext extends ParserRuleContext {
21731 		public IdentifierContext windowName;
21732 		public TerminalNode OVER() { return getToken(HiveStatementParser.OVER, 0); }
21733 		public WindowSpecificationContext windowSpecification() {
21734 			return getRuleContext(WindowSpecificationContext.class,0);
21735 		}
21736 		public IdentifierContext identifier() {
21737 			return getRuleContext(IdentifierContext.class,0);
21738 		}
21739 		public WindowingClauseContext(ParserRuleContext parent, int invokingState) {
21740 			super(parent, invokingState);
21741 		}
21742 		@Override public int getRuleIndex() { return RULE_windowingClause; }
21743 		@Override
21744 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
21745 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWindowingClause(this);
21746 			else return visitor.visitChildren(this);
21747 		}
21748 	}
21749 
21750 	public final WindowingClauseContext windowingClause() throws RecognitionException {
21751 		WindowingClauseContext _localctx = new WindowingClauseContext(_ctx, getState());
21752 		enterRule(_localctx, 370, RULE_windowingClause);
21753 		try {
21754 			enterOuterAlt(_localctx, 1);
21755 			{
21756 			setState(2124);
21757 			match(OVER);
21758 			setState(2127);
21759 			_errHandler.sync(this);
21760 			switch (_input.LA(1)) {
21761 			case MAX:
21762 			case MIN:
21763 			case SUM:
21764 			case COUNT:
21765 			case GROUP_CONCAT:
21766 			case CAST:
21767 			case POSITION:
21768 			case SUBSTRING:
21769 			case SUBSTR:
21770 			case EXTRACT:
21771 			case TRIM:
21772 			case LAST_DAY:
21773 			case TRADITIONAL:
21774 			case TREE:
21775 			case MYSQL_MAIN:
21776 			case MYSQL_ADMIN:
21777 			case INSTANT:
21778 			case INPLACE:
21779 			case COPY:
21780 			case UL_BINARY:
21781 			case AUTOCOMMIT:
21782 			case INNODB:
21783 			case REDO_LOG:
21784 			case ACCOUNT:
21785 			case ACTION:
21786 			case ACTIVE:
21787 			case ADMIN:
21788 			case AFTER:
21789 			case AGAINST:
21790 			case AGGREGATE:
21791 			case ALGORITHM:
21792 			case ALWAYS:
21793 			case ANY:
21794 			case ARRAY:
21795 			case ASCII:
21796 			case AT:
21797 			case ATTRIBUTE:
21798 			case AUTOEXTEND_SIZE:
21799 			case AUTO_INCREMENT:
21800 			case AVG:
21801 			case BIT_XOR:
21802 			case AVG_ROW_LENGTH:
21803 			case BACKUP:
21804 			case BEGIN:
21805 			case BINLOG:
21806 			case BIT:
21807 			case BLOCK:
21808 			case BOOL:
21809 			case BOOLEAN:
21810 			case BTREE:
21811 			case BUCKETS:
21812 			case BYTE:
21813 			case CACHE:
21814 			case CASCADED:
21815 			case CATALOG_NAME:
21816 			case CHAIN:
21817 			case CHANGED:
21818 			case CHANNEL:
21819 			case CHARSET:
21820 			case CHECKSUM:
21821 			case CIPHER:
21822 			case CLASS_ORIGIN:
21823 			case CLIENT:
21824 			case CLONE:
21825 			case CLOSE:
21826 			case COALESCE:
21827 			case CODE:
21828 			case COLLATION:
21829 			case COLUMNS:
21830 			case COLUMN_FORMAT:
21831 			case COLUMN_NAME:
21832 			case COMMENT:
21833 			case COMMIT:
21834 			case COMMITTED:
21835 			case COMPACT:
21836 			case COMPLETION:
21837 			case COMPONENT:
21838 			case COMPRESSED:
21839 			case COMPRESSION:
21840 			case CONCURRENT:
21841 			case CONNECTION:
21842 			case CONSISTENT:
21843 			case CONSTRAINT_CATALOG:
21844 			case CONSTRAINT_NAME:
21845 			case CONSTRAINT_SCHEMA:
21846 			case CONTAINS:
21847 			case CONTEXT:
21848 			case CPU:
21849 			case CREATE:
21850 			case CURRENT:
21851 			case CURSOR_NAME:
21852 			case DATA:
21853 			case DATAFILE:
21854 			case DATE:
21855 			case DATETIME:
21856 			case DAY:
21857 			case DAY_MINUTE:
21858 			case DEALLOCATE:
21859 			case DEFAULT_AUTH:
21860 			case DEFINER:
21861 			case DEFINITION:
21862 			case DELAY_KEY_WRITE:
21863 			case DESCRIPTION:
21864 			case DIAGNOSTICS:
21865 			case DIRECTORY:
21866 			case DISABLE:
21867 			case DISCARD:
21868 			case DISK:
21869 			case DO:
21870 			case DUMPFILE:
21871 			case DUPLICATE:
21872 			case DYNAMIC:
21873 			case ENABLE:
21874 			case ENCRYPTION:
21875 			case END:
21876 			case ENDS:
21877 			case ENFORCED:
21878 			case ENGINE:
21879 			case ENGINES:
21880 			case ENGINE_ATTRIBUTE:
21881 			case ENUM:
21882 			case ERROR:
21883 			case ERRORS:
21884 			case ESCAPE:
21885 			case EVENT:
21886 			case EVENTS:
21887 			case EVERY:
21888 			case EXCHANGE:
21889 			case EXCLUDE:
21890 			case EXECUTE:
21891 			case EXPANSION:
21892 			case EXPIRE:
21893 			case EXPORT:
21894 			case EXTENDED:
21895 			case EXTENT_SIZE:
21896 			case FAILED_LOGIN_ATTEMPTS:
21897 			case FAST:
21898 			case FAULTS:
21899 			case FILE:
21900 			case FILE_BLOCK_SIZE:
21901 			case FILTER:
21902 			case FIRST:
21903 			case FIXED:
21904 			case FLUSH:
21905 			case FOLLOWING:
21906 			case FOLLOWS:
21907 			case FORMAT:
21908 			case FOUND:
21909 			case FULL:
21910 			case GENERAL:
21911 			case GEOMETRY:
21912 			case GEOMETRYCOLLECTION:
21913 			case GET_FORMAT:
21914 			case GET_MASTER_PUBLIC_KEY:
21915 			case GLOBAL:
21916 			case GRANTS:
21917 			case GROUP_REPLICATION:
21918 			case HANDLER:
21919 			case HASH:
21920 			case HELP:
21921 			case HISTOGRAM:
21922 			case HISTORY:
21923 			case HOST:
21924 			case HOSTS:
21925 			case HOUR:
21926 			case IDENTIFIED:
21927 			case IGNORE_SERVER_IDS:
21928 			case IMPORT:
21929 			case INACTIVE:
21930 			case INDEXES:
21931 			case INITIAL_SIZE:
21932 			case INSERT_METHOD:
21933 			case INSTALL:
21934 			case INSTANCE:
21935 			case INVISIBLE:
21936 			case INVOKER:
21937 			case IO:
21938 			case IPC:
21939 			case ISOLATION:
21940 			case ISSUER:
21941 			case JSON:
21942 			case JSON_VALUE:
21943 			case KEY:
21944 			case KEY_BLOCK_SIZE:
21945 			case LANGUAGE:
21946 			case LAST:
21947 			case LAST_VALUE:
21948 			case LEAVES:
21949 			case LESS:
21950 			case LEVEL:
21951 			case LINESTRING:
21952 			case LIST:
21953 			case LOCAL:
21954 			case LOCKED:
21955 			case LOCKS:
21956 			case LOGFILE:
21957 			case LOGS:
21958 			case MASTER:
21959 			case MASTER_AUTO_POSITION:
21960 			case MASTER_COMPRESSION_ALGORITHM:
21961 			case MASTER_CONNECT_RETRY:
21962 			case MASTER_DELAY:
21963 			case MASTER_HEARTBEAT_PERIOD:
21964 			case MASTER_HOST:
21965 			case MASTER_LOG_FILE:
21966 			case MASTER_LOG_POS:
21967 			case MASTER_PASSWORD:
21968 			case MASTER_PORT:
21969 			case MASTER_PUBLIC_KEY_PATH:
21970 			case MASTER_RETRY_COUNT:
21971 			case MASTER_SERVER_ID:
21972 			case MASTER_SSL:
21973 			case MASTER_SSL_CA:
21974 			case MASTER_SSL_CAPATH:
21975 			case MASTER_SSL_CERT:
21976 			case MASTER_SSL_CIPHER:
21977 			case MASTER_SSL_CRL:
21978 			case MASTER_SSL_CRLPATH:
21979 			case MASTER_SSL_KEY:
21980 			case MASTER_TLS_CIPHERSUITES:
21981 			case MASTER_TLS_VERSION:
21982 			case MASTER_USER:
21983 			case MASTER_ZSTD_COMPRESSION_LEVEL:
21984 			case MAXVALUE:
21985 			case MAX_CONNECTIONS_PER_HOUR:
21986 			case MAX_QUERIES_PER_HOUR:
21987 			case MAX_ROWS:
21988 			case MAX_SIZE:
21989 			case MAX_UPDATES_PER_HOUR:
21990 			case MAX_USER_CONNECTIONS:
21991 			case MEDIUM:
21992 			case MEMBER:
21993 			case MEMORY:
21994 			case MERGE:
21995 			case MESSAGE_TEXT:
21996 			case MICROSECOND:
21997 			case MIGRATE:
21998 			case MINUTE:
21999 			case MIN_ROWS:
22000 			case MODE:
22001 			case MODIFY:
22002 			case MONTH:
22003 			case MULTILINESTRING:
22004 			case MULTIPOINT:
22005 			case MULTIPOLYGON:
22006 			case MUTEX:
22007 			case MYSQL_ERRNO:
22008 			case NAME:
22009 			case NAMES:
22010 			case NATIONAL:
22011 			case NCHAR:
22012 			case NDBCLUSTER:
22013 			case NESTED:
22014 			case NETWORK_NAMESPACE:
22015 			case NEVER:
22016 			case NEW:
22017 			case NEXT:
22018 			case NO:
22019 			case NODEGROUP:
22020 			case NONE:
22021 			case NOWAIT:
22022 			case NO_WAIT:
22023 			case NULLS:
22024 			case NUMBER:
22025 			case NVARCHAR:
22026 			case OFF:
22027 			case OFFSET:
22028 			case OJ:
22029 			case OLD:
22030 			case ONE:
22031 			case ONLY:
22032 			case OPEN:
22033 			case OPTIONAL:
22034 			case OPTIONS:
22035 			case ORDINALITY:
22036 			case ORGANIZATION:
22037 			case OTHERS:
22038 			case OWNER:
22039 			case PACK_KEYS:
22040 			case PAGE:
22041 			case PARSER:
22042 			case PARTIAL:
22043 			case PARTITIONING:
22044 			case PARTITIONS:
22045 			case PASSWORD:
22046 			case PASSWORD_LOCK_TIME:
22047 			case PATH:
22048 			case PERSIST:
22049 			case PERSIST_ONLY:
22050 			case PHASE:
22051 			case PLUGIN:
22052 			case PLUGINS:
22053 			case PLUGIN_DIR:
22054 			case POINT:
22055 			case POLYGON:
22056 			case PORT:
22057 			case PRECEDES:
22058 			case PRECEDING:
22059 			case PREPARE:
22060 			case PRESERVE:
22061 			case PREV:
22062 			case PRIMARY:
22063 			case PRIVILEGES:
22064 			case PRIVILEGE_CHECKS_USER:
22065 			case PROCESS:
22066 			case PROCESSLIST:
22067 			case PROFILE:
22068 			case PROFILES:
22069 			case PROXY:
22070 			case QUARTER:
22071 			case QUERY:
22072 			case QUICK:
22073 			case RANDOM:
22074 			case READ_ONLY:
22075 			case REBUILD:
22076 			case RECOVER:
22077 			case REDO_BUFFER_SIZE:
22078 			case REDUNDANT:
22079 			case REFERENCE:
22080 			case RELAY:
22081 			case RELAYLOG:
22082 			case RELAY_LOG_FILE:
22083 			case RELAY_LOG_POS:
22084 			case RELAY_THREAD:
22085 			case RELOAD:
22086 			case REMOVE:
22087 			case REORGANIZE:
22088 			case REPAIR:
22089 			case REPEATABLE:
22090 			case REPLICATE_DO_DB:
22091 			case REPLICATE_DO_TABLE:
22092 			case REPLICATE_IGNORE_DB:
22093 			case REPLICATE_IGNORE_TABLE:
22094 			case REPLICATE_REWRITE_DB:
22095 			case REPLICATE_WILD_DO_TABLE:
22096 			case REPLICATE_WILD_IGNORE_TABLE:
22097 			case REPLICATION:
22098 			case REQUIRE_ROW_FORMAT:
22099 			case RESET:
22100 			case RESOURCE:
22101 			case RESPECT:
22102 			case RESTART:
22103 			case RESTORE:
22104 			case RESUME:
22105 			case RETAIN:
22106 			case RETURNED_SQLSTATE:
22107 			case RETURNING:
22108 			case RETURNS:
22109 			case REUSE:
22110 			case REVERSE:
22111 			case ROLE:
22112 			case ROLLBACK:
22113 			case ROLLUP:
22114 			case ROTATE:
22115 			case ROUTINE:
22116 			case ROW_COUNT:
22117 			case ROW_FORMAT:
22118 			case RTREE:
22119 			case SAVEPOINT:
22120 			case SCHEDULE:
22121 			case SCHEMA_NAME:
22122 			case SECOND:
22123 			case SECONDARY:
22124 			case SECONDARY_ENGINE:
22125 			case SECONDARY_ENGINE_ATTRIBUTE:
22126 			case SECONDARY_LOAD:
22127 			case SECONDARY_UNLOAD:
22128 			case SECURITY:
22129 			case SERIAL:
22130 			case SERIALIZABLE:
22131 			case SERVER:
22132 			case SESSION:
22133 			case SHARE:
22134 			case SHUTDOWN:
22135 			case SIGNED:
22136 			case SIMPLE:
22137 			case SLAVE:
22138 			case SLOW:
22139 			case SNAPSHOT:
22140 			case SOCKET:
22141 			case SONAME:
22142 			case SOUNDS:
22143 			case SOURCE:
22144 			case SQL_AFTER_GTIDS:
22145 			case SQL_AFTER_MTS_GAPS:
22146 			case SQL_BEFORE_GTIDS:
22147 			case SQL_BUFFER_RESULT:
22148 			case SQL_NO_CACHE:
22149 			case SQL_THREAD:
22150 			case SRID:
22151 			case STACKED:
22152 			case START:
22153 			case STARTS:
22154 			case STATS_AUTO_RECALC:
22155 			case STATS_PERSISTENT:
22156 			case STATS_SAMPLE_PAGES:
22157 			case STATUS:
22158 			case STOP:
22159 			case STORAGE:
22160 			case STREAM:
22161 			case STRING:
22162 			case SUBCLASS_ORIGIN:
22163 			case SUBJECT:
22164 			case SUBPARTITION:
22165 			case SUBPARTITIONS:
22166 			case SUPER:
22167 			case SUSPEND:
22168 			case SWAPS:
22169 			case SWITCHES:
22170 			case SYSTEM:
22171 			case TABLE:
22172 			case TABLES:
22173 			case TABLESPACE:
22174 			case TABLE_CHECKSUM:
22175 			case TABLE_NAME:
22176 			case TEMPORARY:
22177 			case TEMPTABLE:
22178 			case TEXT:
22179 			case THAN:
22180 			case THREAD_PRIORITY:
22181 			case TIES:
22182 			case TIME:
22183 			case TIMESTAMP:
22184 			case TIMESTAMP_ADD:
22185 			case TIMESTAMP_DIFF:
22186 			case TLS:
22187 			case TRANSACTION:
22188 			case TRIGGERS:
22189 			case TRUNCATE:
22190 			case TYPE:
22191 			case TYPES:
22192 			case UNBOUNDED:
22193 			case UNCOMMITTED:
22194 			case UNDEFINED:
22195 			case UNDOFILE:
22196 			case UNDO_BUFFER_SIZE:
22197 			case UNICODE:
22198 			case UNINSTALL:
22199 			case UNKNOWN:
22200 			case UNTIL:
22201 			case UPGRADE:
22202 			case USER:
22203 			case USER_RESOURCES:
22204 			case USE_FRM:
22205 			case UTC_DATE:
22206 			case UTC_TIME:
22207 			case UTC_TIMESTAMP:
22208 			case VALIDATION:
22209 			case VALUE:
22210 			case VARIABLES:
22211 			case VCPU:
22212 			case VIEW:
22213 			case VISIBLE:
22214 			case WAIT:
22215 			case WARNINGS:
22216 			case WEEK:
22217 			case WEIGHT_STRING:
22218 			case WITHOUT:
22219 			case WORK:
22220 			case WRAPPER:
22221 			case X509:
22222 			case XA:
22223 			case XID:
22224 			case XML:
22225 			case YEAR:
22226 			case YEAR_MONTH:
22227 			case DOUBLE_QUOTED_TEXT:
22228 			case BQUOTA_STRING:
22229 			case UNDERSCORE_CHARSET:
22230 			case IDENTIFIER_:
22231 				{
22232 				setState(2125);
22233 				((WindowingClauseContext)_localctx).windowName = identifier();
22234 				}
22235 				break;
22236 			case LP_:
22237 				{
22238 				setState(2126);
22239 				windowSpecification();
22240 				}
22241 				break;
22242 			default:
22243 				throw new NoViableAltException(this);
22244 			}
22245 			}
22246 		}
22247 		catch (RecognitionException re) {
22248 			_localctx.exception = re;
22249 			_errHandler.reportError(this, re);
22250 			_errHandler.recover(this, re);
22251 		}
22252 		finally {
22253 			exitRule();
22254 		}
22255 		return _localctx;
22256 	}
22257 
22258 	public static class LeadLagInfoContext extends ParserRuleContext {
22259 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
22260 		public TerminalNode COMMA_(int i) {
22261 			return getToken(HiveStatementParser.COMMA_, i);
22262 		}
22263 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
22264 		public TerminalNode QUESTION_() { return getToken(HiveStatementParser.QUESTION_, 0); }
22265 		public ExprContext expr() {
22266 			return getRuleContext(ExprContext.class,0);
22267 		}
22268 		public LeadLagInfoContext(ParserRuleContext parent, int invokingState) {
22269 			super(parent, invokingState);
22270 		}
22271 		@Override public int getRuleIndex() { return RULE_leadLagInfo; }
22272 		@Override
22273 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22274 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLeadLagInfo(this);
22275 			else return visitor.visitChildren(this);
22276 		}
22277 	}
22278 
22279 	public final LeadLagInfoContext leadLagInfo() throws RecognitionException {
22280 		LeadLagInfoContext _localctx = new LeadLagInfoContext(_ctx, getState());
22281 		enterRule(_localctx, 372, RULE_leadLagInfo);
22282 		int _la;
22283 		try {
22284 			enterOuterAlt(_localctx, 1);
22285 			{
22286 			setState(2129);
22287 			match(COMMA_);
22288 			setState(2130);
22289 			_la = _input.LA(1);
22290 			if ( !(_la==QUESTION_ || _la==NUMBER_) ) {
22291 			_errHandler.recoverInline(this);
22292 			}
22293 			else {
22294 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
22295 				_errHandler.reportMatch(this);
22296 				consume();
22297 			}
22298 			setState(2133);
22299 			_errHandler.sync(this);
22300 			_la = _input.LA(1);
22301 			if (_la==COMMA_) {
22302 				{
22303 				setState(2131);
22304 				match(COMMA_);
22305 				setState(2132);
22306 				expr(0);
22307 				}
22308 			}
22309 
22310 			}
22311 		}
22312 		catch (RecognitionException re) {
22313 			_localctx.exception = re;
22314 			_errHandler.reportError(this, re);
22315 			_errHandler.recover(this, re);
22316 		}
22317 		finally {
22318 			exitRule();
22319 		}
22320 		return _localctx;
22321 	}
22322 
22323 	public static class NullTreatmentContext extends ParserRuleContext {
22324 		public TerminalNode NULLS() { return getToken(HiveStatementParser.NULLS, 0); }
22325 		public TerminalNode RESPECT() { return getToken(HiveStatementParser.RESPECT, 0); }
22326 		public TerminalNode IGNORE() { return getToken(HiveStatementParser.IGNORE, 0); }
22327 		public NullTreatmentContext(ParserRuleContext parent, int invokingState) {
22328 			super(parent, invokingState);
22329 		}
22330 		@Override public int getRuleIndex() { return RULE_nullTreatment; }
22331 		@Override
22332 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22333 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNullTreatment(this);
22334 			else return visitor.visitChildren(this);
22335 		}
22336 	}
22337 
22338 	public final NullTreatmentContext nullTreatment() throws RecognitionException {
22339 		NullTreatmentContext _localctx = new NullTreatmentContext(_ctx, getState());
22340 		enterRule(_localctx, 374, RULE_nullTreatment);
22341 		int _la;
22342 		try {
22343 			enterOuterAlt(_localctx, 1);
22344 			{
22345 			setState(2135);
22346 			_la = _input.LA(1);
22347 			if ( !(_la==IGNORE || _la==RESPECT) ) {
22348 			_errHandler.recoverInline(this);
22349 			}
22350 			else {
22351 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
22352 				_errHandler.reportMatch(this);
22353 				consume();
22354 			}
22355 			setState(2136);
22356 			match(NULLS);
22357 			}
22358 		}
22359 		catch (RecognitionException re) {
22360 			_localctx.exception = re;
22361 			_errHandler.reportError(this, re);
22362 			_errHandler.recover(this, re);
22363 		}
22364 		finally {
22365 			exitRule();
22366 		}
22367 		return _localctx;
22368 	}
22369 
22370 	public static class CheckTypeContext extends ParserRuleContext {
22371 		public TerminalNode FOR() { return getToken(HiveStatementParser.FOR, 0); }
22372 		public TerminalNode UPGRADE() { return getToken(HiveStatementParser.UPGRADE, 0); }
22373 		public TerminalNode QUICK() { return getToken(HiveStatementParser.QUICK, 0); }
22374 		public TerminalNode FAST() { return getToken(HiveStatementParser.FAST, 0); }
22375 		public TerminalNode MEDIUM() { return getToken(HiveStatementParser.MEDIUM, 0); }
22376 		public TerminalNode EXTENDED() { return getToken(HiveStatementParser.EXTENDED, 0); }
22377 		public TerminalNode CHANGED() { return getToken(HiveStatementParser.CHANGED, 0); }
22378 		public CheckTypeContext(ParserRuleContext parent, int invokingState) {
22379 			super(parent, invokingState);
22380 		}
22381 		@Override public int getRuleIndex() { return RULE_checkType; }
22382 		@Override
22383 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22384 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCheckType(this);
22385 			else return visitor.visitChildren(this);
22386 		}
22387 	}
22388 
22389 	public final CheckTypeContext checkType() throws RecognitionException {
22390 		CheckTypeContext _localctx = new CheckTypeContext(_ctx, getState());
22391 		enterRule(_localctx, 376, RULE_checkType);
22392 		try {
22393 			setState(2145);
22394 			_errHandler.sync(this);
22395 			switch (_input.LA(1)) {
22396 			case FOR:
22397 				enterOuterAlt(_localctx, 1);
22398 				{
22399 				setState(2138);
22400 				match(FOR);
22401 				setState(2139);
22402 				match(UPGRADE);
22403 				}
22404 				break;
22405 			case QUICK:
22406 				enterOuterAlt(_localctx, 2);
22407 				{
22408 				setState(2140);
22409 				match(QUICK);
22410 				}
22411 				break;
22412 			case FAST:
22413 				enterOuterAlt(_localctx, 3);
22414 				{
22415 				setState(2141);
22416 				match(FAST);
22417 				}
22418 				break;
22419 			case MEDIUM:
22420 				enterOuterAlt(_localctx, 4);
22421 				{
22422 				setState(2142);
22423 				match(MEDIUM);
22424 				}
22425 				break;
22426 			case EXTENDED:
22427 				enterOuterAlt(_localctx, 5);
22428 				{
22429 				setState(2143);
22430 				match(EXTENDED);
22431 				}
22432 				break;
22433 			case CHANGED:
22434 				enterOuterAlt(_localctx, 6);
22435 				{
22436 				setState(2144);
22437 				match(CHANGED);
22438 				}
22439 				break;
22440 			default:
22441 				throw new NoViableAltException(this);
22442 			}
22443 		}
22444 		catch (RecognitionException re) {
22445 			_localctx.exception = re;
22446 			_errHandler.reportError(this, re);
22447 			_errHandler.recover(this, re);
22448 		}
22449 		finally {
22450 			exitRule();
22451 		}
22452 		return _localctx;
22453 	}
22454 
22455 	public static class RepairTypeContext extends ParserRuleContext {
22456 		public TerminalNode QUICK() { return getToken(HiveStatementParser.QUICK, 0); }
22457 		public TerminalNode EXTENDED() { return getToken(HiveStatementParser.EXTENDED, 0); }
22458 		public TerminalNode USE_FRM() { return getToken(HiveStatementParser.USE_FRM, 0); }
22459 		public RepairTypeContext(ParserRuleContext parent, int invokingState) {
22460 			super(parent, invokingState);
22461 		}
22462 		@Override public int getRuleIndex() { return RULE_repairType; }
22463 		@Override
22464 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22465 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRepairType(this);
22466 			else return visitor.visitChildren(this);
22467 		}
22468 	}
22469 
22470 	public final RepairTypeContext repairType() throws RecognitionException {
22471 		RepairTypeContext _localctx = new RepairTypeContext(_ctx, getState());
22472 		enterRule(_localctx, 378, RULE_repairType);
22473 		int _la;
22474 		try {
22475 			enterOuterAlt(_localctx, 1);
22476 			{
22477 			setState(2147);
22478 			_la = _input.LA(1);
22479 			if ( !(_la==EXTENDED || _la==QUICK || _la==USE_FRM) ) {
22480 			_errHandler.recoverInline(this);
22481 			}
22482 			else {
22483 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
22484 				_errHandler.reportMatch(this);
22485 				consume();
22486 			}
22487 			}
22488 		}
22489 		catch (RecognitionException re) {
22490 			_localctx.exception = re;
22491 			_errHandler.reportError(this, re);
22492 			_errHandler.recover(this, re);
22493 		}
22494 		finally {
22495 			exitRule();
22496 		}
22497 		return _localctx;
22498 	}
22499 
22500 	public static class CastFunctionContext extends ParserRuleContext {
22501 		public TerminalNode CAST() { return getToken(HiveStatementParser.CAST, 0); }
22502 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
22503 		public List<ExprContext> expr() {
22504 			return getRuleContexts(ExprContext.class);
22505 		}
22506 		public ExprContext expr(int i) {
22507 			return getRuleContext(ExprContext.class,i);
22508 		}
22509 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
22510 		public CastTypeContext castType() {
22511 			return getRuleContext(CastTypeContext.class,0);
22512 		}
22513 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
22514 		public TerminalNode ARRAY() { return getToken(HiveStatementParser.ARRAY, 0); }
22515 		public TerminalNode AT() { return getToken(HiveStatementParser.AT, 0); }
22516 		public TerminalNode TIME() { return getToken(HiveStatementParser.TIME, 0); }
22517 		public TerminalNode ZONE() { return getToken(HiveStatementParser.ZONE, 0); }
22518 		public TerminalNode DATETIME() { return getToken(HiveStatementParser.DATETIME, 0); }
22519 		public TypeDatetimePrecisionContext typeDatetimePrecision() {
22520 			return getRuleContext(TypeDatetimePrecisionContext.class,0);
22521 		}
22522 		public CastFunctionContext(ParserRuleContext parent, int invokingState) {
22523 			super(parent, invokingState);
22524 		}
22525 		@Override public int getRuleIndex() { return RULE_castFunction; }
22526 		@Override
22527 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22528 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCastFunction(this);
22529 			else return visitor.visitChildren(this);
22530 		}
22531 	}
22532 
22533 	public final CastFunctionContext castFunction() throws RecognitionException {
22534 		CastFunctionContext _localctx = new CastFunctionContext(_ctx, getState());
22535 		enterRule(_localctx, 380, RULE_castFunction);
22536 		int _la;
22537 		try {
22538 			setState(2173);
22539 			_errHandler.sync(this);
22540 			switch ( getInterpreter().adaptivePredict(_input,248,_ctx) ) {
22541 			case 1:
22542 				enterOuterAlt(_localctx, 1);
22543 				{
22544 				setState(2149);
22545 				match(CAST);
22546 				setState(2150);
22547 				match(LP_);
22548 				setState(2151);
22549 				expr(0);
22550 				setState(2152);
22551 				match(AS);
22552 				setState(2153);
22553 				castType();
22554 				setState(2155);
22555 				_errHandler.sync(this);
22556 				_la = _input.LA(1);
22557 				if (_la==ARRAY) {
22558 					{
22559 					setState(2154);
22560 					match(ARRAY);
22561 					}
22562 				}
22563 
22564 				setState(2157);
22565 				match(RP_);
22566 				}
22567 				break;
22568 			case 2:
22569 				enterOuterAlt(_localctx, 2);
22570 				{
22571 				setState(2159);
22572 				match(CAST);
22573 				setState(2160);
22574 				match(LP_);
22575 				setState(2161);
22576 				expr(0);
22577 				setState(2162);
22578 				match(AT);
22579 				setState(2163);
22580 				match(TIME);
22581 				setState(2164);
22582 				match(ZONE);
22583 				setState(2165);
22584 				expr(0);
22585 				setState(2166);
22586 				match(AS);
22587 				setState(2167);
22588 				match(DATETIME);
22589 				setState(2169);
22590 				_errHandler.sync(this);
22591 				_la = _input.LA(1);
22592 				if (_la==LP_) {
22593 					{
22594 					setState(2168);
22595 					typeDatetimePrecision();
22596 					}
22597 				}
22598 
22599 				setState(2171);
22600 				match(RP_);
22601 				}
22602 				break;
22603 			}
22604 		}
22605 		catch (RecognitionException re) {
22606 			_localctx.exception = re;
22607 			_errHandler.reportError(this, re);
22608 			_errHandler.recover(this, re);
22609 		}
22610 		finally {
22611 			exitRule();
22612 		}
22613 		return _localctx;
22614 	}
22615 
22616 	public static class ConvertFunctionContext extends ParserRuleContext {
22617 		public TerminalNode CONVERT() { return getToken(HiveStatementParser.CONVERT, 0); }
22618 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
22619 		public ExprContext expr() {
22620 			return getRuleContext(ExprContext.class,0);
22621 		}
22622 		public TerminalNode COMMA_() { return getToken(HiveStatementParser.COMMA_, 0); }
22623 		public CastTypeContext castType() {
22624 			return getRuleContext(CastTypeContext.class,0);
22625 		}
22626 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
22627 		public TerminalNode USING() { return getToken(HiveStatementParser.USING, 0); }
22628 		public CharsetNameContext charsetName() {
22629 			return getRuleContext(CharsetNameContext.class,0);
22630 		}
22631 		public ConvertFunctionContext(ParserRuleContext parent, int invokingState) {
22632 			super(parent, invokingState);
22633 		}
22634 		@Override public int getRuleIndex() { return RULE_convertFunction; }
22635 		@Override
22636 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22637 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitConvertFunction(this);
22638 			else return visitor.visitChildren(this);
22639 		}
22640 	}
22641 
22642 	public final ConvertFunctionContext convertFunction() throws RecognitionException {
22643 		ConvertFunctionContext _localctx = new ConvertFunctionContext(_ctx, getState());
22644 		enterRule(_localctx, 382, RULE_convertFunction);
22645 		try {
22646 			setState(2189);
22647 			_errHandler.sync(this);
22648 			switch ( getInterpreter().adaptivePredict(_input,249,_ctx) ) {
22649 			case 1:
22650 				enterOuterAlt(_localctx, 1);
22651 				{
22652 				setState(2175);
22653 				match(CONVERT);
22654 				setState(2176);
22655 				match(LP_);
22656 				setState(2177);
22657 				expr(0);
22658 				setState(2178);
22659 				match(COMMA_);
22660 				setState(2179);
22661 				castType();
22662 				setState(2180);
22663 				match(RP_);
22664 				}
22665 				break;
22666 			case 2:
22667 				enterOuterAlt(_localctx, 2);
22668 				{
22669 				setState(2182);
22670 				match(CONVERT);
22671 				setState(2183);
22672 				match(LP_);
22673 				setState(2184);
22674 				expr(0);
22675 				setState(2185);
22676 				match(USING);
22677 				setState(2186);
22678 				charsetName();
22679 				setState(2187);
22680 				match(RP_);
22681 				}
22682 				break;
22683 			}
22684 		}
22685 		catch (RecognitionException re) {
22686 			_localctx.exception = re;
22687 			_errHandler.reportError(this, re);
22688 			_errHandler.recover(this, re);
22689 		}
22690 		finally {
22691 			exitRule();
22692 		}
22693 		return _localctx;
22694 	}
22695 
22696 	public static class CastTypeContext extends ParserRuleContext {
22697 		public Token castTypeName;
22698 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
22699 		public FieldLengthContext fieldLength() {
22700 			return getRuleContext(FieldLengthContext.class,0);
22701 		}
22702 		public TerminalNode CHAR() { return getToken(HiveStatementParser.CHAR, 0); }
22703 		public CharsetWithOptBinaryContext charsetWithOptBinary() {
22704 			return getRuleContext(CharsetWithOptBinaryContext.class,0);
22705 		}
22706 		public TerminalNode NCHAR() { return getToken(HiveStatementParser.NCHAR, 0); }
22707 		public TerminalNode NATIONAL_CHAR() { return getToken(HiveStatementParser.NATIONAL_CHAR, 0); }
22708 		public TerminalNode SIGNED() { return getToken(HiveStatementParser.SIGNED, 0); }
22709 		public TerminalNode SIGNED_INT() { return getToken(HiveStatementParser.SIGNED_INT, 0); }
22710 		public TerminalNode SIGNED_INTEGER() { return getToken(HiveStatementParser.SIGNED_INTEGER, 0); }
22711 		public TerminalNode UNSIGNED() { return getToken(HiveStatementParser.UNSIGNED, 0); }
22712 		public TerminalNode UNSIGNED_INT() { return getToken(HiveStatementParser.UNSIGNED_INT, 0); }
22713 		public TerminalNode UNSIGNED_INTEGER() { return getToken(HiveStatementParser.UNSIGNED_INTEGER, 0); }
22714 		public TerminalNode DATE() { return getToken(HiveStatementParser.DATE, 0); }
22715 		public TerminalNode TIME() { return getToken(HiveStatementParser.TIME, 0); }
22716 		public TypeDatetimePrecisionContext typeDatetimePrecision() {
22717 			return getRuleContext(TypeDatetimePrecisionContext.class,0);
22718 		}
22719 		public TerminalNode DATETIME() { return getToken(HiveStatementParser.DATETIME, 0); }
22720 		public TerminalNode DECIMAL() { return getToken(HiveStatementParser.DECIMAL, 0); }
22721 		public PrecisionContext precision() {
22722 			return getRuleContext(PrecisionContext.class,0);
22723 		}
22724 		public TerminalNode JSON() { return getToken(HiveStatementParser.JSON, 0); }
22725 		public TerminalNode REAL() { return getToken(HiveStatementParser.REAL, 0); }
22726 		public TerminalNode PRECISION() { return getToken(HiveStatementParser.PRECISION, 0); }
22727 		public TerminalNode DOUBLE() { return getToken(HiveStatementParser.DOUBLE, 0); }
22728 		public TerminalNode FLOAT() { return getToken(HiveStatementParser.FLOAT, 0); }
22729 		public CastTypeContext(ParserRuleContext parent, int invokingState) {
22730 			super(parent, invokingState);
22731 		}
22732 		@Override public int getRuleIndex() { return RULE_castType; }
22733 		@Override
22734 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22735 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCastType(this);
22736 			else return visitor.visitChildren(this);
22737 		}
22738 	}
22739 
22740 	public final CastTypeContext castType() throws RecognitionException {
22741 		CastTypeContext _localctx = new CastTypeContext(_ctx, getState());
22742 		enterRule(_localctx, 384, RULE_castType);
22743 		int _la;
22744 		try {
22745 			setState(2233);
22746 			_errHandler.sync(this);
22747 			switch (_input.LA(1)) {
22748 			case BINARY:
22749 				enterOuterAlt(_localctx, 1);
22750 				{
22751 				setState(2191);
22752 				((CastTypeContext)_localctx).castTypeName = match(BINARY);
22753 				setState(2193);
22754 				_errHandler.sync(this);
22755 				_la = _input.LA(1);
22756 				if (_la==LP_) {
22757 					{
22758 					setState(2192);
22759 					fieldLength();
22760 					}
22761 				}
22762 
22763 				}
22764 				break;
22765 			case CHAR:
22766 				enterOuterAlt(_localctx, 2);
22767 				{
22768 				setState(2195);
22769 				((CastTypeContext)_localctx).castTypeName = match(CHAR);
22770 				setState(2197);
22771 				_errHandler.sync(this);
22772 				_la = _input.LA(1);
22773 				if (_la==LP_) {
22774 					{
22775 					setState(2196);
22776 					fieldLength();
22777 					}
22778 				}
22779 
22780 				setState(2200);
22781 				_errHandler.sync(this);
22782 				_la = _input.LA(1);
22783 				if (((((_la - 91)) & ~0x3f) == 0 && ((1L << (_la - 91)) & ((1L << (ASCII - 91)) | (1L << (BINARY - 91)) | (1L << (BYTE - 91)) | (1L << (CHAR - 91)) | (1L << (CHARACTER - 91)) | (1L << (CHARSET - 91)))) != 0) || _la==UNICODE) {
22784 					{
22785 					setState(2199);
22786 					charsetWithOptBinary();
22787 					}
22788 				}
22789 
22790 				}
22791 				break;
22792 			case NATIONAL_CHAR:
22793 			case NCHAR:
22794 				enterOuterAlt(_localctx, 3);
22795 				{
22796 				setState(2204);
22797 				_errHandler.sync(this);
22798 				switch (_input.LA(1)) {
22799 				case NCHAR:
22800 					{
22801 					setState(2202);
22802 					((CastTypeContext)_localctx).castTypeName = match(NCHAR);
22803 					}
22804 					break;
22805 				case NATIONAL_CHAR:
22806 					{
22807 					setState(2203);
22808 					((CastTypeContext)_localctx).castTypeName = match(NATIONAL_CHAR);
22809 					}
22810 					break;
22811 				default:
22812 					throw new NoViableAltException(this);
22813 				}
22814 				setState(2207);
22815 				_errHandler.sync(this);
22816 				_la = _input.LA(1);
22817 				if (_la==LP_) {
22818 					{
22819 					setState(2206);
22820 					fieldLength();
22821 					}
22822 				}
22823 
22824 				}
22825 				break;
22826 			case SIGNED:
22827 			case SIGNED_INT:
22828 			case SIGNED_INTEGER:
22829 				enterOuterAlt(_localctx, 4);
22830 				{
22831 				setState(2209);
22832 				((CastTypeContext)_localctx).castTypeName = _input.LT(1);
22833 				_la = _input.LA(1);
22834 				if ( !(((((_la - 642)) & ~0x3f) == 0 && ((1L << (_la - 642)) & ((1L << (SIGNED - 642)) | (1L << (SIGNED_INT - 642)) | (1L << (SIGNED_INTEGER - 642)))) != 0)) ) {
22835 					((CastTypeContext)_localctx).castTypeName = (Token)_errHandler.recoverInline(this);
22836 				}
22837 				else {
22838 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
22839 					_errHandler.reportMatch(this);
22840 					consume();
22841 				}
22842 				}
22843 				break;
22844 			case UNSIGNED:
22845 			case UNSIGNED_INT:
22846 			case UNSIGNED_INTEGER:
22847 				enterOuterAlt(_localctx, 5);
22848 				{
22849 				setState(2210);
22850 				((CastTypeContext)_localctx).castTypeName = _input.LT(1);
22851 				_la = _input.LA(1);
22852 				if ( !(((((_la - 764)) & ~0x3f) == 0 && ((1L << (_la - 764)) & ((1L << (UNSIGNED - 764)) | (1L << (UNSIGNED_INT - 764)) | (1L << (UNSIGNED_INTEGER - 764)))) != 0)) ) {
22853 					((CastTypeContext)_localctx).castTypeName = (Token)_errHandler.recoverInline(this);
22854 				}
22855 				else {
22856 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
22857 					_errHandler.reportMatch(this);
22858 					consume();
22859 				}
22860 				}
22861 				break;
22862 			case DATE:
22863 				enterOuterAlt(_localctx, 6);
22864 				{
22865 				setState(2211);
22866 				((CastTypeContext)_localctx).castTypeName = match(DATE);
22867 				}
22868 				break;
22869 			case TIME:
22870 				enterOuterAlt(_localctx, 7);
22871 				{
22872 				setState(2212);
22873 				((CastTypeContext)_localctx).castTypeName = match(TIME);
22874 				setState(2214);
22875 				_errHandler.sync(this);
22876 				_la = _input.LA(1);
22877 				if (_la==LP_) {
22878 					{
22879 					setState(2213);
22880 					typeDatetimePrecision();
22881 					}
22882 				}
22883 
22884 				}
22885 				break;
22886 			case DATETIME:
22887 				enterOuterAlt(_localctx, 8);
22888 				{
22889 				setState(2216);
22890 				((CastTypeContext)_localctx).castTypeName = match(DATETIME);
22891 				setState(2218);
22892 				_errHandler.sync(this);
22893 				_la = _input.LA(1);
22894 				if (_la==LP_) {
22895 					{
22896 					setState(2217);
22897 					typeDatetimePrecision();
22898 					}
22899 				}
22900 
22901 				}
22902 				break;
22903 			case DECIMAL:
22904 				enterOuterAlt(_localctx, 9);
22905 				{
22906 				setState(2220);
22907 				((CastTypeContext)_localctx).castTypeName = match(DECIMAL);
22908 				setState(2223);
22909 				_errHandler.sync(this);
22910 				switch ( getInterpreter().adaptivePredict(_input,257,_ctx) ) {
22911 				case 1:
22912 					{
22913 					setState(2221);
22914 					fieldLength();
22915 					}
22916 					break;
22917 				case 2:
22918 					{
22919 					setState(2222);
22920 					precision();
22921 					}
22922 					break;
22923 				}
22924 				}
22925 				break;
22926 			case JSON:
22927 				enterOuterAlt(_localctx, 10);
22928 				{
22929 				setState(2225);
22930 				((CastTypeContext)_localctx).castTypeName = match(JSON);
22931 				}
22932 				break;
22933 			case REAL:
22934 				enterOuterAlt(_localctx, 11);
22935 				{
22936 				setState(2226);
22937 				((CastTypeContext)_localctx).castTypeName = match(REAL);
22938 				}
22939 				break;
22940 			case DOUBLE:
22941 				enterOuterAlt(_localctx, 12);
22942 				{
22943 				setState(2227);
22944 				((CastTypeContext)_localctx).castTypeName = match(DOUBLE);
22945 				setState(2228);
22946 				match(PRECISION);
22947 				}
22948 				break;
22949 			case FLOAT:
22950 				enterOuterAlt(_localctx, 13);
22951 				{
22952 				setState(2229);
22953 				((CastTypeContext)_localctx).castTypeName = match(FLOAT);
22954 				setState(2231);
22955 				_errHandler.sync(this);
22956 				_la = _input.LA(1);
22957 				if (_la==LP_) {
22958 					{
22959 					setState(2230);
22960 					precision();
22961 					}
22962 				}
22963 
22964 				}
22965 				break;
22966 			default:
22967 				throw new NoViableAltException(this);
22968 			}
22969 		}
22970 		catch (RecognitionException re) {
22971 			_localctx.exception = re;
22972 			_errHandler.reportError(this, re);
22973 			_errHandler.recover(this, re);
22974 		}
22975 		finally {
22976 			exitRule();
22977 		}
22978 		return _localctx;
22979 	}
22980 
22981 	public static class PositionFunctionContext extends ParserRuleContext {
22982 		public TerminalNode POSITION() { return getToken(HiveStatementParser.POSITION, 0); }
22983 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
22984 		public List<ExprContext> expr() {
22985 			return getRuleContexts(ExprContext.class);
22986 		}
22987 		public ExprContext expr(int i) {
22988 			return getRuleContext(ExprContext.class,i);
22989 		}
22990 		public TerminalNode IN() { return getToken(HiveStatementParser.IN, 0); }
22991 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
22992 		public PositionFunctionContext(ParserRuleContext parent, int invokingState) {
22993 			super(parent, invokingState);
22994 		}
22995 		@Override public int getRuleIndex() { return RULE_positionFunction; }
22996 		@Override
22997 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
22998 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPositionFunction(this);
22999 			else return visitor.visitChildren(this);
23000 		}
23001 	}
23002 
23003 	public final PositionFunctionContext positionFunction() throws RecognitionException {
23004 		PositionFunctionContext _localctx = new PositionFunctionContext(_ctx, getState());
23005 		enterRule(_localctx, 386, RULE_positionFunction);
23006 		try {
23007 			enterOuterAlt(_localctx, 1);
23008 			{
23009 			setState(2235);
23010 			match(POSITION);
23011 			setState(2236);
23012 			match(LP_);
23013 			setState(2237);
23014 			expr(0);
23015 			setState(2238);
23016 			match(IN);
23017 			setState(2239);
23018 			expr(0);
23019 			setState(2240);
23020 			match(RP_);
23021 			}
23022 		}
23023 		catch (RecognitionException re) {
23024 			_localctx.exception = re;
23025 			_errHandler.reportError(this, re);
23026 			_errHandler.recover(this, re);
23027 		}
23028 		finally {
23029 			exitRule();
23030 		}
23031 		return _localctx;
23032 	}
23033 
23034 	public static class SubstringFunctionContext extends ParserRuleContext {
23035 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23036 		public ExprContext expr() {
23037 			return getRuleContext(ExprContext.class,0);
23038 		}
23039 		public TerminalNode FROM() { return getToken(HiveStatementParser.FROM, 0); }
23040 		public List<TerminalNode> NUMBER_() { return getTokens(HiveStatementParser.NUMBER_); }
23041 		public TerminalNode NUMBER_(int i) {
23042 			return getToken(HiveStatementParser.NUMBER_, i);
23043 		}
23044 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23045 		public TerminalNode SUBSTRING() { return getToken(HiveStatementParser.SUBSTRING, 0); }
23046 		public TerminalNode SUBSTR() { return getToken(HiveStatementParser.SUBSTR, 0); }
23047 		public TerminalNode FOR() { return getToken(HiveStatementParser.FOR, 0); }
23048 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
23049 		public TerminalNode COMMA_(int i) {
23050 			return getToken(HiveStatementParser.COMMA_, i);
23051 		}
23052 		public SubstringFunctionContext(ParserRuleContext parent, int invokingState) {
23053 			super(parent, invokingState);
23054 		}
23055 		@Override public int getRuleIndex() { return RULE_substringFunction; }
23056 		@Override
23057 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23058 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitSubstringFunction(this);
23059 			else return visitor.visitChildren(this);
23060 		}
23061 	}
23062 
23063 	public final SubstringFunctionContext substringFunction() throws RecognitionException {
23064 		SubstringFunctionContext _localctx = new SubstringFunctionContext(_ctx, getState());
23065 		enterRule(_localctx, 388, RULE_substringFunction);
23066 		int _la;
23067 		try {
23068 			setState(2264);
23069 			_errHandler.sync(this);
23070 			switch ( getInterpreter().adaptivePredict(_input,262,_ctx) ) {
23071 			case 1:
23072 				enterOuterAlt(_localctx, 1);
23073 				{
23074 				setState(2242);
23075 				_la = _input.LA(1);
23076 				if ( !(_la==SUBSTRING || _la==SUBSTR) ) {
23077 				_errHandler.recoverInline(this);
23078 				}
23079 				else {
23080 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
23081 					_errHandler.reportMatch(this);
23082 					consume();
23083 				}
23084 				setState(2243);
23085 				match(LP_);
23086 				setState(2244);
23087 				expr(0);
23088 				setState(2245);
23089 				match(FROM);
23090 				setState(2246);
23091 				match(NUMBER_);
23092 				setState(2249);
23093 				_errHandler.sync(this);
23094 				_la = _input.LA(1);
23095 				if (_la==FOR) {
23096 					{
23097 					setState(2247);
23098 					match(FOR);
23099 					setState(2248);
23100 					match(NUMBER_);
23101 					}
23102 				}
23103 
23104 				setState(2251);
23105 				match(RP_);
23106 				}
23107 				break;
23108 			case 2:
23109 				enterOuterAlt(_localctx, 2);
23110 				{
23111 				setState(2253);
23112 				_la = _input.LA(1);
23113 				if ( !(_la==SUBSTRING || _la==SUBSTR) ) {
23114 				_errHandler.recoverInline(this);
23115 				}
23116 				else {
23117 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
23118 					_errHandler.reportMatch(this);
23119 					consume();
23120 				}
23121 				setState(2254);
23122 				match(LP_);
23123 				setState(2255);
23124 				expr(0);
23125 				setState(2256);
23126 				match(COMMA_);
23127 				setState(2257);
23128 				match(NUMBER_);
23129 				setState(2260);
23130 				_errHandler.sync(this);
23131 				_la = _input.LA(1);
23132 				if (_la==COMMA_) {
23133 					{
23134 					setState(2258);
23135 					match(COMMA_);
23136 					setState(2259);
23137 					match(NUMBER_);
23138 					}
23139 				}
23140 
23141 				setState(2262);
23142 				match(RP_);
23143 				}
23144 				break;
23145 			}
23146 		}
23147 		catch (RecognitionException re) {
23148 			_localctx.exception = re;
23149 			_errHandler.reportError(this, re);
23150 			_errHandler.recover(this, re);
23151 		}
23152 		finally {
23153 			exitRule();
23154 		}
23155 		return _localctx;
23156 	}
23157 
23158 	public static class ExtractFunctionContext extends ParserRuleContext {
23159 		public TerminalNode EXTRACT() { return getToken(HiveStatementParser.EXTRACT, 0); }
23160 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23161 		public IdentifierContext identifier() {
23162 			return getRuleContext(IdentifierContext.class,0);
23163 		}
23164 		public TerminalNode FROM() { return getToken(HiveStatementParser.FROM, 0); }
23165 		public ExprContext expr() {
23166 			return getRuleContext(ExprContext.class,0);
23167 		}
23168 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23169 		public ExtractFunctionContext(ParserRuleContext parent, int invokingState) {
23170 			super(parent, invokingState);
23171 		}
23172 		@Override public int getRuleIndex() { return RULE_extractFunction; }
23173 		@Override
23174 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23175 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitExtractFunction(this);
23176 			else return visitor.visitChildren(this);
23177 		}
23178 	}
23179 
23180 	public final ExtractFunctionContext extractFunction() throws RecognitionException {
23181 		ExtractFunctionContext _localctx = new ExtractFunctionContext(_ctx, getState());
23182 		enterRule(_localctx, 390, RULE_extractFunction);
23183 		try {
23184 			enterOuterAlt(_localctx, 1);
23185 			{
23186 			setState(2266);
23187 			match(EXTRACT);
23188 			setState(2267);
23189 			match(LP_);
23190 			setState(2268);
23191 			identifier();
23192 			setState(2269);
23193 			match(FROM);
23194 			setState(2270);
23195 			expr(0);
23196 			setState(2271);
23197 			match(RP_);
23198 			}
23199 		}
23200 		catch (RecognitionException re) {
23201 			_localctx.exception = re;
23202 			_errHandler.reportError(this, re);
23203 			_errHandler.recover(this, re);
23204 		}
23205 		finally {
23206 			exitRule();
23207 		}
23208 		return _localctx;
23209 	}
23210 
23211 	public static class CharFunctionContext extends ParserRuleContext {
23212 		public TerminalNode CHAR() { return getToken(HiveStatementParser.CHAR, 0); }
23213 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23214 		public List<ExprContext> expr() {
23215 			return getRuleContexts(ExprContext.class);
23216 		}
23217 		public ExprContext expr(int i) {
23218 			return getRuleContext(ExprContext.class,i);
23219 		}
23220 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23221 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
23222 		public TerminalNode COMMA_(int i) {
23223 			return getToken(HiveStatementParser.COMMA_, i);
23224 		}
23225 		public TerminalNode USING() { return getToken(HiveStatementParser.USING, 0); }
23226 		public CharsetNameContext charsetName() {
23227 			return getRuleContext(CharsetNameContext.class,0);
23228 		}
23229 		public CharFunctionContext(ParserRuleContext parent, int invokingState) {
23230 			super(parent, invokingState);
23231 		}
23232 		@Override public int getRuleIndex() { return RULE_charFunction; }
23233 		@Override
23234 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23235 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCharFunction(this);
23236 			else return visitor.visitChildren(this);
23237 		}
23238 	}
23239 
23240 	public final CharFunctionContext charFunction() throws RecognitionException {
23241 		CharFunctionContext _localctx = new CharFunctionContext(_ctx, getState());
23242 		enterRule(_localctx, 392, RULE_charFunction);
23243 		int _la;
23244 		try {
23245 			enterOuterAlt(_localctx, 1);
23246 			{
23247 			setState(2273);
23248 			match(CHAR);
23249 			setState(2274);
23250 			match(LP_);
23251 			setState(2275);
23252 			expr(0);
23253 			setState(2280);
23254 			_errHandler.sync(this);
23255 			_la = _input.LA(1);
23256 			while (_la==COMMA_) {
23257 				{
23258 				{
23259 				setState(2276);
23260 				match(COMMA_);
23261 				setState(2277);
23262 				expr(0);
23263 				}
23264 				}
23265 				setState(2282);
23266 				_errHandler.sync(this);
23267 				_la = _input.LA(1);
23268 			}
23269 			setState(2285);
23270 			_errHandler.sync(this);
23271 			_la = _input.LA(1);
23272 			if (_la==USING) {
23273 				{
23274 				setState(2283);
23275 				match(USING);
23276 				setState(2284);
23277 				charsetName();
23278 				}
23279 			}
23280 
23281 			setState(2287);
23282 			match(RP_);
23283 			}
23284 		}
23285 		catch (RecognitionException re) {
23286 			_localctx.exception = re;
23287 			_errHandler.reportError(this, re);
23288 			_errHandler.recover(this, re);
23289 		}
23290 		finally {
23291 			exitRule();
23292 		}
23293 		return _localctx;
23294 	}
23295 
23296 	public static class TrimFunctionContext extends ParserRuleContext {
23297 		public TerminalNode TRIM() { return getToken(HiveStatementParser.TRIM, 0); }
23298 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23299 		public List<ExprContext> expr() {
23300 			return getRuleContexts(ExprContext.class);
23301 		}
23302 		public ExprContext expr(int i) {
23303 			return getRuleContext(ExprContext.class,i);
23304 		}
23305 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23306 		public TerminalNode FROM() { return getToken(HiveStatementParser.FROM, 0); }
23307 		public TerminalNode LEADING() { return getToken(HiveStatementParser.LEADING, 0); }
23308 		public TerminalNode BOTH() { return getToken(HiveStatementParser.BOTH, 0); }
23309 		public TerminalNode TRAILING() { return getToken(HiveStatementParser.TRAILING, 0); }
23310 		public TrimFunctionContext(ParserRuleContext parent, int invokingState) {
23311 			super(parent, invokingState);
23312 		}
23313 		@Override public int getRuleIndex() { return RULE_trimFunction; }
23314 		@Override
23315 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23316 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTrimFunction(this);
23317 			else return visitor.visitChildren(this);
23318 		}
23319 	}
23320 
23321 	public final TrimFunctionContext trimFunction() throws RecognitionException {
23322 		TrimFunctionContext _localctx = new TrimFunctionContext(_ctx, getState());
23323 		enterRule(_localctx, 394, RULE_trimFunction);
23324 		int _la;
23325 		try {
23326 			setState(2311);
23327 			_errHandler.sync(this);
23328 			switch ( getInterpreter().adaptivePredict(_input,268,_ctx) ) {
23329 			case 1:
23330 				enterOuterAlt(_localctx, 1);
23331 				{
23332 				setState(2289);
23333 				match(TRIM);
23334 				setState(2290);
23335 				match(LP_);
23336 				setState(2296);
23337 				_errHandler.sync(this);
23338 				_la = _input.LA(1);
23339 				if (_la==BOTH || _la==LEADING || _la==TRAILING) {
23340 					{
23341 					setState(2291);
23342 					_la = _input.LA(1);
23343 					if ( !(_la==BOTH || _la==LEADING || _la==TRAILING) ) {
23344 					_errHandler.recoverInline(this);
23345 					}
23346 					else {
23347 						if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
23348 						_errHandler.reportMatch(this);
23349 						consume();
23350 					}
23351 					setState(2293);
23352 					_errHandler.sync(this);
23353 					_la = _input.LA(1);
23354 					if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NOT_) | (1L << TILDE_) | (1L << PLUS_) | (1L << MINUS_) | (1L << LP_) | (1L << LBE_) | (1L << QUESTION_) | (1L << AT_) | (1L << MAX) | (1L << MIN) | (1L << SUM) | (1L << COUNT) | (1L << GROUP_CONCAT) | (1L << CAST) | (1L << POSITION) | (1L << SUBSTRING) | (1L << SUBSTR) | (1L << EXTRACT) | (1L << TRIM) | (1L << LAST_DAY) | (1L << TRADITIONAL) | (1L << TREE) | (1L << MYSQL_MAIN) | (1L << MYSQL_ADMIN) | (1L << INSTANT))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (INPLACE - 64)) | (1L << (COPY - 64)) | (1L << (UL_BINARY - 64)) | (1L << (AUTOCOMMIT - 64)) | (1L << (INNODB - 64)) | (1L << (REDO_LOG - 64)) | (1L << (ACCOUNT - 64)) | (1L << (ACTION - 64)) | (1L << (ACTIVE - 64)) | (1L << (ADMIN - 64)) | (1L << (AFTER - 64)) | (1L << (AGAINST - 64)) | (1L << (AGGREGATE - 64)) | (1L << (ALGORITHM - 64)) | (1L << (ALWAYS - 64)) | (1L << (ANY - 64)) | (1L << (ARRAY - 64)) | (1L << (ASCII - 64)) | (1L << (AT - 64)) | (1L << (ATTRIBUTE - 64)) | (1L << (AUTOEXTEND_SIZE - 64)) | (1L << (AUTO_INCREMENT - 64)) | (1L << (AVG - 64)) | (1L << (BIT_XOR - 64)) | (1L << (AVG_ROW_LENGTH - 64)) | (1L << (BACKUP - 64)) | (1L << (BEGIN - 64)) | (1L << (BINARY - 64)) | (1L << (BINLOG - 64)) | (1L << (BIT - 64)) | (1L << (BLOCK - 64)) | (1L << (BOOL - 64)) | (1L << (BOOLEAN - 64)) | (1L << (BTREE - 64)) | (1L << (BUCKETS - 64)) | (1L << (BYTE - 64)) | (1L << (CACHE - 64)) | (1L << (CASCADED - 64)) | (1L << (CASE - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CHAIN - 64)) | (1L << (CHANGED - 64)) | (1L << (CHANNEL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CHAR - 128)) | (1L << (CHARSET - 128)) | (1L << (CHECKSUM - 128)) | (1L << (CIPHER - 128)) | (1L << (CLASS_ORIGIN - 128)) | (1L << (CLIENT - 128)) | (1L << (CLONE - 128)) | (1L << (CLOSE - 128)) | (1L << (COALESCE - 128)) | (1L << (CODE - 128)) | (1L << (COLLATION - 128)) | (1L << (COLUMNS - 128)) | (1L << (COLUMN_FORMAT - 128)) | (1L << (COLUMN_NAME - 128)) | (1L << (COMMENT - 128)) | (1L << (COMMIT - 128)) | (1L << (COMMITTED - 128)) | (1L << (COMPACT - 128)) | (1L << (COMPLETION - 128)) | (1L << (COMPONENT - 128)) | (1L << (COMPRESSED - 128)) | (1L << (COMPRESSION - 128)) | (1L << (CONCURRENT - 128)) | (1L << (CONNECTION - 128)) | (1L << (CONSISTENT - 128)) | (1L << (CONSTRAINT_CATALOG - 128)) | (1L << (CONSTRAINT_NAME - 128)) | (1L << (CONSTRAINT_SCHEMA - 128)) | (1L << (CONTAINS - 128)) | (1L << (CONTEXT - 128)) | (1L << (CONVERT - 128)) | (1L << (CPU - 128)) | (1L << (CREATE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATAFILE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME - 128)) | (1L << (DAY - 128)) | (1L << (DAY_MINUTE - 128)) | (1L << (DEALLOCATE - 128)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (DEFAULT_AUTH - 196)) | (1L << (DEFINER - 196)) | (1L << (DEFINITION - 196)) | (1L << (DELAY_KEY_WRITE - 196)) | (1L << (DENSE_RANK - 196)) | (1L << (DESCRIPTION - 196)) | (1L << (DIAGNOSTICS - 196)) | (1L << (DIRECTORY - 196)) | (1L << (DISABLE - 196)) | (1L << (DISCARD - 196)) | (1L << (DISK - 196)) | (1L << (DO - 196)) | (1L << (DUMPFILE - 196)) | (1L << (DUPLICATE - 196)) | (1L << (DYNAMIC - 196)) | (1L << (ENABLE - 196)) | (1L << (ENCRYPTION - 196)) | (1L << (END - 196)) | (1L << (ENDS - 196)) | (1L << (ENFORCED - 196)) | (1L << (ENGINE - 196)) | (1L << (ENGINES - 196)) | (1L << (ENGINE_ATTRIBUTE - 196)) | (1L << (ENUM - 196)) | (1L << (ERROR - 196)) | (1L << (ERRORS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVENT - 196)) | (1L << (EVENTS - 196)) | (1L << (EVERY - 196)) | (1L << (EXCHANGE - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXPANSION - 196)) | (1L << (EXPIRE - 196)) | (1L << (EXPORT - 196)) | (1L << (EXTENDED - 196)) | (1L << (EXTENT_SIZE - 196)) | (1L << (FAILED_LOGIN_ATTEMPTS - 196)) | (1L << (FALSE - 196)) | (1L << (FAST - 196)) | (1L << (FAULTS - 196)))) != 0) || ((((_la - 260)) & ~0x3f) == 0 && ((1L << (_la - 260)) & ((1L << (FILE - 260)) | (1L << (FILE_BLOCK_SIZE - 260)) | (1L << (FILTER - 260)) | (1L << (FIRST - 260)) | (1L << (FIRST_VALUE - 260)) | (1L << (FIXED - 260)) | (1L << (FLUSH - 260)) | (1L << (FOLLOWING - 260)) | (1L << (FOLLOWS - 260)) | (1L << (FORMAT - 260)) | (1L << (FOUND - 260)) | (1L << (FULL - 260)) | (1L << (GENERAL - 260)) | (1L << (GEOMETRY - 260)) | (1L << (GEOMETRYCOLLECTION - 260)) | (1L << (GET_FORMAT - 260)) | (1L << (GET_MASTER_PUBLIC_KEY - 260)) | (1L << (GLOBAL - 260)) | (1L << (GRANTS - 260)) | (1L << (GROUP_REPLICATION - 260)) | (1L << (HANDLER - 260)) | (1L << (HASH - 260)) | (1L << (HELP - 260)) | (1L << (HISTOGRAM - 260)) | (1L << (HISTORY - 260)) | (1L << (HOST - 260)) | (1L << (HOSTS - 260)) | (1L << (HOUR - 260)) | (1L << (IDENTIFIED - 260)) | (1L << (IF - 260)) | (1L << (IGNORE_SERVER_IDS - 260)) | (1L << (IMPORT - 260)) | (1L << (INACTIVE - 260)) | (1L << (INDEXES - 260)) | (1L << (INITIAL_SIZE - 260)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (INSERT - 326)) | (1L << (INSERT_METHOD - 326)) | (1L << (INSTALL - 326)) | (1L << (INSTANCE - 326)) | (1L << (INTERVAL - 326)) | (1L << (INVISIBLE - 326)) | (1L << (INVOKER - 326)) | (1L << (IO - 326)) | (1L << (IPC - 326)) | (1L << (ISOLATION - 326)) | (1L << (ISSUER - 326)) | (1L << (JSON - 326)) | (1L << (JSON_TABLE - 326)) | (1L << (JSON_VALUE - 326)) | (1L << (KEY - 326)) | (1L << (KEY_BLOCK_SIZE - 326)) | (1L << (LAG - 326)) | (1L << (LANGUAGE - 326)) | (1L << (LAST - 326)) | (1L << (LAST_VALUE - 326)) | (1L << (LEAD - 326)) | (1L << (LEAVES - 326)) | (1L << (LEFT - 326)) | (1L << (LESS - 326)) | (1L << (LEVEL - 326)) | (1L << (LINESTRING - 326)) | (1L << (LIST - 326)) | (1L << (LOCAL - 326)) | (1L << (LOCALTIME - 326)) | (1L << (LOCALTIMESTAMP - 326)) | (1L << (LOCKED - 326)) | (1L << (LOCKS - 326)) | (1L << (LOGFILE - 326)) | (1L << (LOGS - 326)))) != 0) || ((((_la - 391)) & ~0x3f) == 0 && ((1L << (_la - 391)) & ((1L << (MASTER - 391)) | (1L << (MASTER_AUTO_POSITION - 391)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 391)) | (1L << (MASTER_CONNECT_RETRY - 391)) | (1L << (MASTER_DELAY - 391)) | (1L << (MASTER_HEARTBEAT_PERIOD - 391)) | (1L << (MASTER_HOST - 391)) | (1L << (MASTER_LOG_FILE - 391)) | (1L << (MASTER_LOG_POS - 391)) | (1L << (MASTER_PASSWORD - 391)) | (1L << (MASTER_PORT - 391)) | (1L << (MASTER_PUBLIC_KEY_PATH - 391)) | (1L << (MASTER_RETRY_COUNT - 391)) | (1L << (MASTER_SERVER_ID - 391)) | (1L << (MASTER_SSL - 391)) | (1L << (MASTER_SSL_CA - 391)) | (1L << (MASTER_SSL_CAPATH - 391)) | (1L << (MASTER_SSL_CERT - 391)) | (1L << (MASTER_SSL_CIPHER - 391)) | (1L << (MASTER_SSL_CRL - 391)) | (1L << (MASTER_SSL_CRLPATH - 391)) | (1L << (MASTER_SSL_KEY - 391)) | (1L << (MASTER_TLS_CIPHERSUITES - 391)) | (1L << (MASTER_TLS_VERSION - 391)) | (1L << (MASTER_USER - 391)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 391)) | (1L << (MATCH - 391)) | (1L << (MAXVALUE - 391)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 391)) | (1L << (MAX_QUERIES_PER_HOUR - 391)) | (1L << (MAX_ROWS - 391)) | (1L << (MAX_SIZE - 391)) | (1L << (MAX_UPDATES_PER_HOUR - 391)) | (1L << (MAX_USER_CONNECTIONS - 391)) | (1L << (MEDIUM - 391)) | (1L << (MEMBER - 391)) | (1L << (MEMORY - 391)) | (1L << (MERGE - 391)) | (1L << (MESSAGE_TEXT - 391)) | (1L << (MICROSECOND - 391)) | (1L << (MIGRATE - 391)) | (1L << (MINUTE - 391)) | (1L << (MIN_ROWS - 391)) | (1L << (MOD - 391)) | (1L << (MODE - 391)) | (1L << (MODIFY - 391)) | (1L << (MONTH - 391)) | (1L << (MULTILINESTRING - 391)) | (1L << (MULTIPOINT - 391)) | (1L << (MULTIPOLYGON - 391)) | (1L << (MUTEX - 391)) | (1L << (MYSQL_ERRNO - 391)) | (1L << (NAME - 391)) | (1L << (NAMES - 391)) | (1L << (NATIONAL - 391)))) != 0) || ((((_la - 458)) & ~0x3f) == 0 && ((1L << (_la - 458)) & ((1L << (NCHAR - 458)) | (1L << (NDBCLUSTER - 458)) | (1L << (NESTED - 458)) | (1L << (NETWORK_NAMESPACE - 458)) | (1L << (NEVER - 458)) | (1L << (NEW - 458)) | (1L << (NEXT - 458)) | (1L << (NO - 458)) | (1L << (NODEGROUP - 458)) | (1L << (NONE - 458)) | (1L << (NOT - 458)) | (1L << (NOWAIT - 458)) | (1L << (NO_WAIT - 458)) | (1L << (NTH_VALUE - 458)) | (1L << (NTILE - 458)) | (1L << (NULL - 458)) | (1L << (NULLS - 458)) | (1L << (NUMBER - 458)) | (1L << (NVARCHAR - 458)) | (1L << (OFF - 458)) | (1L << (OFFSET - 458)) | (1L << (OJ - 458)) | (1L << (OLD - 458)) | (1L << (ONE - 458)) | (1L << (ONLY - 458)) | (1L << (OPEN - 458)) | (1L << (OPTIONAL - 458)) | (1L << (OPTIONS - 458)) | (1L << (ORDINALITY - 458)) | (1L << (ORGANIZATION - 458)) | (1L << (OTHERS - 458)) | (1L << (OWNER - 458)) | (1L << (PACK_KEYS - 458)) | (1L << (PAGE - 458)) | (1L << (PARSER - 458)) | (1L << (PARTIAL - 458)) | (1L << (PARTITIONING - 458)) | (1L << (PARTITIONS - 458)) | (1L << (PASSWORD - 458)) | (1L << (PASSWORD_LOCK_TIME - 458)) | (1L << (PATH - 458)) | (1L << (PERCENT_RANK - 458)) | (1L << (PERSIST - 458)) | (1L << (PERSIST_ONLY - 458)) | (1L << (PHASE - 458)) | (1L << (PLUGIN - 458)) | (1L << (PLUGINS - 458)))) != 0) || ((((_la - 522)) & ~0x3f) == 0 && ((1L << (_la - 522)) & ((1L << (PLUGIN_DIR - 522)) | (1L << (POINT - 522)) | (1L << (POLYGON - 522)) | (1L << (PORT - 522)) | (1L << (PRECEDES - 522)) | (1L << (PRECEDING - 522)) | (1L << (PREPARE - 522)) | (1L << (PRESERVE - 522)) | (1L << (PREV - 522)) | (1L << (PRIMARY - 522)) | (1L << (PRIVILEGES - 522)) | (1L << (PRIVILEGE_CHECKS_USER - 522)) | (1L << (PROCESS - 522)) | (1L << (PROCESSLIST - 522)) | (1L << (PROFILE - 522)) | (1L << (PROFILES - 522)) | (1L << (PROXY - 522)) | (1L << (QUARTER - 522)) | (1L << (QUERY - 522)) | (1L << (QUICK - 522)) | (1L << (RANDOM - 522)) | (1L << (RANK - 522)) | (1L << (READ_ONLY - 522)) | (1L << (REBUILD - 522)) | (1L << (RECOVER - 522)) | (1L << (REDO_BUFFER_SIZE - 522)) | (1L << (REDUNDANT - 522)) | (1L << (REFERENCE - 522)) | (1L << (RELAY - 522)) | (1L << (RELAYLOG - 522)) | (1L << (RELAY_LOG_FILE - 522)) | (1L << (RELAY_LOG_POS - 522)) | (1L << (RELAY_THREAD - 522)) | (1L << (RELOAD - 522)) | (1L << (REMOVE - 522)) | (1L << (REORGANIZE - 522)) | (1L << (REPAIR - 522)) | (1L << (REPEAT - 522)) | (1L << (REPEATABLE - 522)) | (1L << (REPLACE - 522)) | (1L << (REPLICATE_DO_DB - 522)) | (1L << (REPLICATE_DO_TABLE - 522)) | (1L << (REPLICATE_IGNORE_DB - 522)) | (1L << (REPLICATE_IGNORE_TABLE - 522)) | (1L << (REPLICATE_REWRITE_DB - 522)) | (1L << (REPLICATE_WILD_DO_TABLE - 522)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 522)) | (1L << (REPLICATION - 522)))) != 0) || ((((_la - 586)) & ~0x3f) == 0 && ((1L << (_la - 586)) & ((1L << (REQUIRE_ROW_FORMAT - 586)) | (1L << (RESET - 586)) | (1L << (RESOURCE - 586)) | (1L << (RESPECT - 586)) | (1L << (RESTART - 586)) | (1L << (RESTORE - 586)) | (1L << (RESUME - 586)) | (1L << (RETAIN - 586)) | (1L << (RETURNED_SQLSTATE - 586)) | (1L << (RETURNING - 586)) | (1L << (RETURNS - 586)) | (1L << (REUSE - 586)) | (1L << (REVERSE - 586)) | (1L << (RIGHT - 586)) | (1L << (ROLE - 586)) | (1L << (ROLLBACK - 586)) | (1L << (ROLLUP - 586)) | (1L << (ROTATE - 586)) | (1L << (ROUTINE - 586)) | (1L << (ROW - 586)) | (1L << (ROW_COUNT - 586)) | (1L << (ROW_FORMAT - 586)) | (1L << (ROW_NUMBER - 586)) | (1L << (RTREE - 586)) | (1L << (SAVEPOINT - 586)) | (1L << (SCHEDULE - 586)) | (1L << (SCHEMA - 586)) | (1L << (SCHEMA_NAME - 586)) | (1L << (SECOND - 586)) | (1L << (SECONDARY - 586)) | (1L << (SECONDARY_ENGINE - 586)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 586)) | (1L << (SECONDARY_LOAD - 586)) | (1L << (SECONDARY_UNLOAD - 586)) | (1L << (SECURITY - 586)) | (1L << (SERIAL - 586)) | (1L << (SERIALIZABLE - 586)) | (1L << (SERVER - 586)) | (1L << (SESSION - 586)) | (1L << (SHARE - 586)) | (1L << (SHUTDOWN - 586)) | (1L << (SIGNED - 586)) | (1L << (SIMPLE - 586)) | (1L << (SLAVE - 586)) | (1L << (SLOW - 586)))) != 0) || ((((_la - 650)) & ~0x3f) == 0 && ((1L << (_la - 650)) & ((1L << (SNAPSHOT - 650)) | (1L << (SOCKET - 650)) | (1L << (SONAME - 650)) | (1L << (SOUNDS - 650)) | (1L << (SOURCE - 650)) | (1L << (SQL_AFTER_GTIDS - 650)) | (1L << (SQL_AFTER_MTS_GAPS - 650)) | (1L << (SQL_BEFORE_GTIDS - 650)) | (1L << (SQL_BUFFER_RESULT - 650)) | (1L << (SQL_NO_CACHE - 650)) | (1L << (SQL_THREAD - 650)) | (1L << (SRID - 650)) | (1L << (STACKED - 650)) | (1L << (START - 650)) | (1L << (STARTS - 650)) | (1L << (STATS_AUTO_RECALC - 650)) | (1L << (STATS_PERSISTENT - 650)) | (1L << (STATS_SAMPLE_PAGES - 650)) | (1L << (STATUS - 650)) | (1L << (STOP - 650)) | (1L << (STORAGE - 650)) | (1L << (STREAM - 650)) | (1L << (STRING - 650)) | (1L << (SUBCLASS_ORIGIN - 650)) | (1L << (SUBJECT - 650)) | (1L << (SUBPARTITION - 650)) | (1L << (SUBPARTITIONS - 650)) | (1L << (SUPER - 650)) | (1L << (SUSPEND - 650)) | (1L << (SWAPS - 650)) | (1L << (SWITCHES - 650)) | (1L << (SYSTEM - 650)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUE - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VALUES - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (JSON_ARRAY - 787)) | (1L << (JSON_ARRAY_APPEND - 787)) | (1L << (JSON_ARRAY_INSERT - 787)) | (1L << (JSON_CONTAINS - 787)) | (1L << (JSON_CONTAINS_PATH - 787)) | (1L << (JSON_DEPTH - 787)) | (1L << (JSON_EXTRACT - 787)) | (1L << (JSON_INSERT - 787)) | (1L << (JSON_KEYS - 787)) | (1L << (JSON_LENGTH - 787)) | (1L << (JSON_MERGE - 787)) | (1L << (JSON_MERGE_PATCH - 787)) | (1L << (JSON_MERGE_PRESERVE - 787)) | (1L << (JSON_OBJECT - 787)) | (1L << (JSON_OVERLAPS - 787)) | (1L << (JSON_PRETTY - 787)) | (1L << (JSON_QUOTE - 787)) | (1L << (JSON_REMOVE - 787)) | (1L << (JSON_REPLACE - 787)) | (1L << (JSON_SCHEMA_VALID - 787)) | (1L << (JSON_SCHEMA_VALIDATION_REPORT - 787)) | (1L << (JSON_SEARCH - 787)) | (1L << (JSON_SET - 787)) | (1L << (JSON_STORAGE_FREE - 787)) | (1L << (JSON_STORAGE_SIZE - 787)) | (1L << (JSON_TYPE - 787)) | (1L << (JSON_UNQUOTE - 787)) | (1L << (JSON_VALID - 787)) | (1L << (SINGLE_QUOTED_TEXT - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (NCHAR_TEXT - 787)) | (1L << (UNDERSCORE_CHARSET - 787)) | (1L << (NUMBER_ - 787)))) != 0) || ((((_la - 851)) & ~0x3f) == 0 && ((1L << (_la - 851)) & ((1L << (HEX_DIGIT_ - 851)) | (1L << (BIT_NUM_ - 851)) | (1L << (IDENTIFIER_ - 851)) | (1L << (IP_ADDRESS - 851)))) != 0)) {
23355 						{
23356 						setState(2292);
23357 						expr(0);
23358 						}
23359 					}
23360 
23361 					setState(2295);
23362 					match(FROM);
23363 					}
23364 				}
23365 
23366 				setState(2298);
23367 				expr(0);
23368 				setState(2299);
23369 				match(RP_);
23370 				}
23371 				break;
23372 			case 2:
23373 				enterOuterAlt(_localctx, 2);
23374 				{
23375 				setState(2301);
23376 				match(TRIM);
23377 				setState(2302);
23378 				match(LP_);
23379 				setState(2306);
23380 				_errHandler.sync(this);
23381 				switch ( getInterpreter().adaptivePredict(_input,267,_ctx) ) {
23382 				case 1:
23383 					{
23384 					setState(2303);
23385 					expr(0);
23386 					setState(2304);
23387 					match(FROM);
23388 					}
23389 					break;
23390 				}
23391 				setState(2308);
23392 				expr(0);
23393 				setState(2309);
23394 				match(RP_);
23395 				}
23396 				break;
23397 			}
23398 		}
23399 		catch (RecognitionException re) {
23400 			_localctx.exception = re;
23401 			_errHandler.reportError(this, re);
23402 			_errHandler.recover(this, re);
23403 		}
23404 		finally {
23405 			exitRule();
23406 		}
23407 		return _localctx;
23408 	}
23409 
23410 	public static class ValuesFunctionContext extends ParserRuleContext {
23411 		public TerminalNode VALUES() { return getToken(HiveStatementParser.VALUES, 0); }
23412 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23413 		public ColumnRefListContext columnRefList() {
23414 			return getRuleContext(ColumnRefListContext.class,0);
23415 		}
23416 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23417 		public ValuesFunctionContext(ParserRuleContext parent, int invokingState) {
23418 			super(parent, invokingState);
23419 		}
23420 		@Override public int getRuleIndex() { return RULE_valuesFunction; }
23421 		@Override
23422 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23423 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitValuesFunction(this);
23424 			else return visitor.visitChildren(this);
23425 		}
23426 	}
23427 
23428 	public final ValuesFunctionContext valuesFunction() throws RecognitionException {
23429 		ValuesFunctionContext _localctx = new ValuesFunctionContext(_ctx, getState());
23430 		enterRule(_localctx, 396, RULE_valuesFunction);
23431 		try {
23432 			enterOuterAlt(_localctx, 1);
23433 			{
23434 			setState(2313);
23435 			match(VALUES);
23436 			setState(2314);
23437 			match(LP_);
23438 			setState(2315);
23439 			columnRefList();
23440 			setState(2316);
23441 			match(RP_);
23442 			}
23443 		}
23444 		catch (RecognitionException re) {
23445 			_localctx.exception = re;
23446 			_errHandler.reportError(this, re);
23447 			_errHandler.recover(this, re);
23448 		}
23449 		finally {
23450 			exitRule();
23451 		}
23452 		return _localctx;
23453 	}
23454 
23455 	public static class WeightStringFunctionContext extends ParserRuleContext {
23456 		public TerminalNode WEIGHT_STRING() { return getToken(HiveStatementParser.WEIGHT_STRING, 0); }
23457 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23458 		public ExprContext expr() {
23459 			return getRuleContext(ExprContext.class,0);
23460 		}
23461 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23462 		public TerminalNode AS() { return getToken(HiveStatementParser.AS, 0); }
23463 		public DataTypeContext dataType() {
23464 			return getRuleContext(DataTypeContext.class,0);
23465 		}
23466 		public LevelClauseContext levelClause() {
23467 			return getRuleContext(LevelClauseContext.class,0);
23468 		}
23469 		public WeightStringFunctionContext(ParserRuleContext parent, int invokingState) {
23470 			super(parent, invokingState);
23471 		}
23472 		@Override public int getRuleIndex() { return RULE_weightStringFunction; }
23473 		@Override
23474 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23475 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitWeightStringFunction(this);
23476 			else return visitor.visitChildren(this);
23477 		}
23478 	}
23479 
23480 	public final WeightStringFunctionContext weightStringFunction() throws RecognitionException {
23481 		WeightStringFunctionContext _localctx = new WeightStringFunctionContext(_ctx, getState());
23482 		enterRule(_localctx, 398, RULE_weightStringFunction);
23483 		int _la;
23484 		try {
23485 			enterOuterAlt(_localctx, 1);
23486 			{
23487 			setState(2318);
23488 			match(WEIGHT_STRING);
23489 			setState(2319);
23490 			match(LP_);
23491 			setState(2320);
23492 			expr(0);
23493 			setState(2323);
23494 			_errHandler.sync(this);
23495 			_la = _input.LA(1);
23496 			if (_la==AS) {
23497 				{
23498 				setState(2321);
23499 				match(AS);
23500 				setState(2322);
23501 				dataType();
23502 				}
23503 			}
23504 
23505 			setState(2326);
23506 			_errHandler.sync(this);
23507 			_la = _input.LA(1);
23508 			if (_la==LEVEL) {
23509 				{
23510 				setState(2325);
23511 				levelClause();
23512 				}
23513 			}
23514 
23515 			setState(2328);
23516 			match(RP_);
23517 			}
23518 		}
23519 		catch (RecognitionException re) {
23520 			_localctx.exception = re;
23521 			_errHandler.reportError(this, re);
23522 			_errHandler.recover(this, re);
23523 		}
23524 		finally {
23525 			exitRule();
23526 		}
23527 		return _localctx;
23528 	}
23529 
23530 	public static class LevelClauseContext extends ParserRuleContext {
23531 		public TerminalNode LEVEL() { return getToken(HiveStatementParser.LEVEL, 0); }
23532 		public List<LevelInWeightListElementContext> levelInWeightListElement() {
23533 			return getRuleContexts(LevelInWeightListElementContext.class);
23534 		}
23535 		public LevelInWeightListElementContext levelInWeightListElement(int i) {
23536 			return getRuleContext(LevelInWeightListElementContext.class,i);
23537 		}
23538 		public List<TerminalNode> NUMBER_() { return getTokens(HiveStatementParser.NUMBER_); }
23539 		public TerminalNode NUMBER_(int i) {
23540 			return getToken(HiveStatementParser.NUMBER_, i);
23541 		}
23542 		public TerminalNode MINUS_() { return getToken(HiveStatementParser.MINUS_, 0); }
23543 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
23544 		public TerminalNode COMMA_(int i) {
23545 			return getToken(HiveStatementParser.COMMA_, i);
23546 		}
23547 		public LevelClauseContext(ParserRuleContext parent, int invokingState) {
23548 			super(parent, invokingState);
23549 		}
23550 		@Override public int getRuleIndex() { return RULE_levelClause; }
23551 		@Override
23552 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23553 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLevelClause(this);
23554 			else return visitor.visitChildren(this);
23555 		}
23556 	}
23557 
23558 	public final LevelClauseContext levelClause() throws RecognitionException {
23559 		LevelClauseContext _localctx = new LevelClauseContext(_ctx, getState());
23560 		enterRule(_localctx, 400, RULE_levelClause);
23561 		int _la;
23562 		try {
23563 			enterOuterAlt(_localctx, 1);
23564 			{
23565 			setState(2330);
23566 			match(LEVEL);
23567 			setState(2342);
23568 			_errHandler.sync(this);
23569 			switch ( getInterpreter().adaptivePredict(_input,272,_ctx) ) {
23570 			case 1:
23571 				{
23572 				setState(2331);
23573 				levelInWeightListElement();
23574 				setState(2336);
23575 				_errHandler.sync(this);
23576 				_la = _input.LA(1);
23577 				while (_la==COMMA_) {
23578 					{
23579 					{
23580 					setState(2332);
23581 					match(COMMA_);
23582 					setState(2333);
23583 					levelInWeightListElement();
23584 					}
23585 					}
23586 					setState(2338);
23587 					_errHandler.sync(this);
23588 					_la = _input.LA(1);
23589 				}
23590 				}
23591 				break;
23592 			case 2:
23593 				{
23594 				setState(2339);
23595 				match(NUMBER_);
23596 				setState(2340);
23597 				match(MINUS_);
23598 				setState(2341);
23599 				match(NUMBER_);
23600 				}
23601 				break;
23602 			}
23603 			}
23604 		}
23605 		catch (RecognitionException re) {
23606 			_localctx.exception = re;
23607 			_errHandler.reportError(this, re);
23608 			_errHandler.recover(this, re);
23609 		}
23610 		finally {
23611 			exitRule();
23612 		}
23613 		return _localctx;
23614 	}
23615 
23616 	public static class LevelInWeightListElementContext extends ParserRuleContext {
23617 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
23618 		public DirectionContext direction() {
23619 			return getRuleContext(DirectionContext.class,0);
23620 		}
23621 		public TerminalNode REVERSE() { return getToken(HiveStatementParser.REVERSE, 0); }
23622 		public LevelInWeightListElementContext(ParserRuleContext parent, int invokingState) {
23623 			super(parent, invokingState);
23624 		}
23625 		@Override public int getRuleIndex() { return RULE_levelInWeightListElement; }
23626 		@Override
23627 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23628 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLevelInWeightListElement(this);
23629 			else return visitor.visitChildren(this);
23630 		}
23631 	}
23632 
23633 	public final LevelInWeightListElementContext levelInWeightListElement() throws RecognitionException {
23634 		LevelInWeightListElementContext _localctx = new LevelInWeightListElementContext(_ctx, getState());
23635 		enterRule(_localctx, 402, RULE_levelInWeightListElement);
23636 		int _la;
23637 		try {
23638 			enterOuterAlt(_localctx, 1);
23639 			{
23640 			setState(2344);
23641 			match(NUMBER_);
23642 			setState(2346);
23643 			_errHandler.sync(this);
23644 			_la = _input.LA(1);
23645 			if (_la==ASC || _la==DESC) {
23646 				{
23647 				setState(2345);
23648 				direction();
23649 				}
23650 			}
23651 
23652 			setState(2349);
23653 			_errHandler.sync(this);
23654 			_la = _input.LA(1);
23655 			if (_la==REVERSE) {
23656 				{
23657 				setState(2348);
23658 				match(REVERSE);
23659 				}
23660 			}
23661 
23662 			}
23663 		}
23664 		catch (RecognitionException re) {
23665 			_localctx.exception = re;
23666 			_errHandler.reportError(this, re);
23667 			_errHandler.recover(this, re);
23668 		}
23669 		finally {
23670 			exitRule();
23671 		}
23672 		return _localctx;
23673 	}
23674 
23675 	public static class RegularFunctionContext extends ParserRuleContext {
23676 		public CompleteRegularFunctionContext completeRegularFunction() {
23677 			return getRuleContext(CompleteRegularFunctionContext.class,0);
23678 		}
23679 		public ShorthandRegularFunctionContext shorthandRegularFunction() {
23680 			return getRuleContext(ShorthandRegularFunctionContext.class,0);
23681 		}
23682 		public RegularFunctionContext(ParserRuleContext parent, int invokingState) {
23683 			super(parent, invokingState);
23684 		}
23685 		@Override public int getRuleIndex() { return RULE_regularFunction; }
23686 		@Override
23687 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23688 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRegularFunction(this);
23689 			else return visitor.visitChildren(this);
23690 		}
23691 	}
23692 
23693 	public final RegularFunctionContext regularFunction() throws RecognitionException {
23694 		RegularFunctionContext _localctx = new RegularFunctionContext(_ctx, getState());
23695 		enterRule(_localctx, 404, RULE_regularFunction);
23696 		try {
23697 			setState(2353);
23698 			_errHandler.sync(this);
23699 			switch ( getInterpreter().adaptivePredict(_input,275,_ctx) ) {
23700 			case 1:
23701 				enterOuterAlt(_localctx, 1);
23702 				{
23703 				setState(2351);
23704 				completeRegularFunction();
23705 				}
23706 				break;
23707 			case 2:
23708 				enterOuterAlt(_localctx, 2);
23709 				{
23710 				setState(2352);
23711 				shorthandRegularFunction();
23712 				}
23713 				break;
23714 			}
23715 		}
23716 		catch (RecognitionException re) {
23717 			_localctx.exception = re;
23718 			_errHandler.reportError(this, re);
23719 			_errHandler.recover(this, re);
23720 		}
23721 		finally {
23722 			exitRule();
23723 		}
23724 		return _localctx;
23725 	}
23726 
23727 	public static class ShorthandRegularFunctionContext extends ParserRuleContext {
23728 		public TerminalNode CURRENT_DATE() { return getToken(HiveStatementParser.CURRENT_DATE, 0); }
23729 		public TerminalNode CURRENT_TIME() { return getToken(HiveStatementParser.CURRENT_TIME, 0); }
23730 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23731 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23732 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
23733 		public TerminalNode CURRENT_TIMESTAMP() { return getToken(HiveStatementParser.CURRENT_TIMESTAMP, 0); }
23734 		public TerminalNode LAST_DAY() { return getToken(HiveStatementParser.LAST_DAY, 0); }
23735 		public TerminalNode LOCALTIME() { return getToken(HiveStatementParser.LOCALTIME, 0); }
23736 		public TerminalNode LOCALTIMESTAMP() { return getToken(HiveStatementParser.LOCALTIMESTAMP, 0); }
23737 		public ShorthandRegularFunctionContext(ParserRuleContext parent, int invokingState) {
23738 			super(parent, invokingState);
23739 		}
23740 		@Override public int getRuleIndex() { return RULE_shorthandRegularFunction; }
23741 		@Override
23742 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23743 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitShorthandRegularFunction(this);
23744 			else return visitor.visitChildren(this);
23745 		}
23746 	}
23747 
23748 	public final ShorthandRegularFunctionContext shorthandRegularFunction() throws RecognitionException {
23749 		ShorthandRegularFunctionContext _localctx = new ShorthandRegularFunctionContext(_ctx, getState());
23750 		enterRule(_localctx, 406, RULE_shorthandRegularFunction);
23751 		int _la;
23752 		try {
23753 			setState(2368);
23754 			_errHandler.sync(this);
23755 			switch (_input.LA(1)) {
23756 			case CURRENT_DATE:
23757 				enterOuterAlt(_localctx, 1);
23758 				{
23759 				setState(2355);
23760 				match(CURRENT_DATE);
23761 				}
23762 				break;
23763 			case CURRENT_TIME:
23764 				enterOuterAlt(_localctx, 2);
23765 				{
23766 				setState(2356);
23767 				match(CURRENT_TIME);
23768 				setState(2362);
23769 				_errHandler.sync(this);
23770 				switch ( getInterpreter().adaptivePredict(_input,277,_ctx) ) {
23771 				case 1:
23772 					{
23773 					setState(2357);
23774 					match(LP_);
23775 					setState(2359);
23776 					_errHandler.sync(this);
23777 					_la = _input.LA(1);
23778 					if (_la==NUMBER_) {
23779 						{
23780 						setState(2358);
23781 						match(NUMBER_);
23782 						}
23783 					}
23784 
23785 					setState(2361);
23786 					match(RP_);
23787 					}
23788 					break;
23789 				}
23790 				}
23791 				break;
23792 			case CURRENT_TIMESTAMP:
23793 				enterOuterAlt(_localctx, 3);
23794 				{
23795 				setState(2364);
23796 				match(CURRENT_TIMESTAMP);
23797 				}
23798 				break;
23799 			case LAST_DAY:
23800 				enterOuterAlt(_localctx, 4);
23801 				{
23802 				setState(2365);
23803 				match(LAST_DAY);
23804 				}
23805 				break;
23806 			case LOCALTIME:
23807 				enterOuterAlt(_localctx, 5);
23808 				{
23809 				setState(2366);
23810 				match(LOCALTIME);
23811 				}
23812 				break;
23813 			case LOCALTIMESTAMP:
23814 				enterOuterAlt(_localctx, 6);
23815 				{
23816 				setState(2367);
23817 				match(LOCALTIMESTAMP);
23818 				}
23819 				break;
23820 			default:
23821 				throw new NoViableAltException(this);
23822 			}
23823 		}
23824 		catch (RecognitionException re) {
23825 			_localctx.exception = re;
23826 			_errHandler.reportError(this, re);
23827 			_errHandler.recover(this, re);
23828 		}
23829 		finally {
23830 			exitRule();
23831 		}
23832 		return _localctx;
23833 	}
23834 
23835 	public static class CompleteRegularFunctionContext extends ParserRuleContext {
23836 		public RegularFunctionNameContext regularFunctionName() {
23837 			return getRuleContext(RegularFunctionNameContext.class,0);
23838 		}
23839 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
23840 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
23841 		public List<ExprContext> expr() {
23842 			return getRuleContexts(ExprContext.class);
23843 		}
23844 		public ExprContext expr(int i) {
23845 			return getRuleContext(ExprContext.class,i);
23846 		}
23847 		public TerminalNode ASTERISK_() { return getToken(HiveStatementParser.ASTERISK_, 0); }
23848 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
23849 		public TerminalNode COMMA_(int i) {
23850 			return getToken(HiveStatementParser.COMMA_, i);
23851 		}
23852 		public CompleteRegularFunctionContext(ParserRuleContext parent, int invokingState) {
23853 			super(parent, invokingState);
23854 		}
23855 		@Override public int getRuleIndex() { return RULE_completeRegularFunction; }
23856 		@Override
23857 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
23858 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCompleteRegularFunction(this);
23859 			else return visitor.visitChildren(this);
23860 		}
23861 	}
23862 
23863 	public final CompleteRegularFunctionContext completeRegularFunction() throws RecognitionException {
23864 		CompleteRegularFunctionContext _localctx = new CompleteRegularFunctionContext(_ctx, getState());
23865 		enterRule(_localctx, 408, RULE_completeRegularFunction);
23866 		int _la;
23867 		try {
23868 			enterOuterAlt(_localctx, 1);
23869 			{
23870 			setState(2370);
23871 			regularFunctionName();
23872 			{
23873 			setState(2371);
23874 			match(LP_);
23875 			setState(2381);
23876 			_errHandler.sync(this);
23877 			switch (_input.LA(1)) {
23878 			case NOT_:
23879 			case TILDE_:
23880 			case PLUS_:
23881 			case MINUS_:
23882 			case LP_:
23883 			case LBE_:
23884 			case QUESTION_:
23885 			case AT_:
23886 			case MAX:
23887 			case MIN:
23888 			case SUM:
23889 			case COUNT:
23890 			case GROUP_CONCAT:
23891 			case CAST:
23892 			case POSITION:
23893 			case SUBSTRING:
23894 			case SUBSTR:
23895 			case EXTRACT:
23896 			case TRIM:
23897 			case LAST_DAY:
23898 			case TRADITIONAL:
23899 			case TREE:
23900 			case MYSQL_MAIN:
23901 			case MYSQL_ADMIN:
23902 			case INSTANT:
23903 			case INPLACE:
23904 			case COPY:
23905 			case UL_BINARY:
23906 			case AUTOCOMMIT:
23907 			case INNODB:
23908 			case REDO_LOG:
23909 			case ACCOUNT:
23910 			case ACTION:
23911 			case ACTIVE:
23912 			case ADMIN:
23913 			case AFTER:
23914 			case AGAINST:
23915 			case AGGREGATE:
23916 			case ALGORITHM:
23917 			case ALWAYS:
23918 			case ANY:
23919 			case ARRAY:
23920 			case ASCII:
23921 			case AT:
23922 			case ATTRIBUTE:
23923 			case AUTOEXTEND_SIZE:
23924 			case AUTO_INCREMENT:
23925 			case AVG:
23926 			case BIT_XOR:
23927 			case AVG_ROW_LENGTH:
23928 			case BACKUP:
23929 			case BEGIN:
23930 			case BINARY:
23931 			case BINLOG:
23932 			case BIT:
23933 			case BLOCK:
23934 			case BOOL:
23935 			case BOOLEAN:
23936 			case BTREE:
23937 			case BUCKETS:
23938 			case BYTE:
23939 			case CACHE:
23940 			case CASCADED:
23941 			case CASE:
23942 			case CATALOG_NAME:
23943 			case CHAIN:
23944 			case CHANGED:
23945 			case CHANNEL:
23946 			case CHAR:
23947 			case CHARSET:
23948 			case CHECKSUM:
23949 			case CIPHER:
23950 			case CLASS_ORIGIN:
23951 			case CLIENT:
23952 			case CLONE:
23953 			case CLOSE:
23954 			case COALESCE:
23955 			case CODE:
23956 			case COLLATION:
23957 			case COLUMNS:
23958 			case COLUMN_FORMAT:
23959 			case COLUMN_NAME:
23960 			case COMMENT:
23961 			case COMMIT:
23962 			case COMMITTED:
23963 			case COMPACT:
23964 			case COMPLETION:
23965 			case COMPONENT:
23966 			case COMPRESSED:
23967 			case COMPRESSION:
23968 			case CONCURRENT:
23969 			case CONNECTION:
23970 			case CONSISTENT:
23971 			case CONSTRAINT_CATALOG:
23972 			case CONSTRAINT_NAME:
23973 			case CONSTRAINT_SCHEMA:
23974 			case CONTAINS:
23975 			case CONTEXT:
23976 			case CONVERT:
23977 			case CPU:
23978 			case CREATE:
23979 			case CUME_DIST:
23980 			case CURRENT:
23981 			case CURRENT_DATE:
23982 			case CURRENT_TIME:
23983 			case CURRENT_TIMESTAMP:
23984 			case CURRENT_USER:
23985 			case CURSOR_NAME:
23986 			case DATA:
23987 			case DATABASE:
23988 			case DATAFILE:
23989 			case DATE:
23990 			case DATETIME:
23991 			case DAY:
23992 			case DAY_MINUTE:
23993 			case DEALLOCATE:
23994 			case DEFAULT_AUTH:
23995 			case DEFINER:
23996 			case DEFINITION:
23997 			case DELAY_KEY_WRITE:
23998 			case DENSE_RANK:
23999 			case DESCRIPTION:
24000 			case DIAGNOSTICS:
24001 			case DIRECTORY:
24002 			case DISABLE:
24003 			case DISCARD:
24004 			case DISK:
24005 			case DO:
24006 			case DUMPFILE:
24007 			case DUPLICATE:
24008 			case DYNAMIC:
24009 			case ENABLE:
24010 			case ENCRYPTION:
24011 			case END:
24012 			case ENDS:
24013 			case ENFORCED:
24014 			case ENGINE:
24015 			case ENGINES:
24016 			case ENGINE_ATTRIBUTE:
24017 			case ENUM:
24018 			case ERROR:
24019 			case ERRORS:
24020 			case ESCAPE:
24021 			case EVENT:
24022 			case EVENTS:
24023 			case EVERY:
24024 			case EXCHANGE:
24025 			case EXCLUDE:
24026 			case EXECUTE:
24027 			case EXISTS:
24028 			case EXPANSION:
24029 			case EXPIRE:
24030 			case EXPORT:
24031 			case EXTENDED:
24032 			case EXTENT_SIZE:
24033 			case FAILED_LOGIN_ATTEMPTS:
24034 			case FALSE:
24035 			case FAST:
24036 			case FAULTS:
24037 			case FILE:
24038 			case FILE_BLOCK_SIZE:
24039 			case FILTER:
24040 			case FIRST:
24041 			case FIRST_VALUE:
24042 			case FIXED:
24043 			case FLUSH:
24044 			case FOLLOWING:
24045 			case FOLLOWS:
24046 			case FORMAT:
24047 			case FOUND:
24048 			case FULL:
24049 			case GENERAL:
24050 			case GEOMETRY:
24051 			case GEOMETRYCOLLECTION:
24052 			case GET_FORMAT:
24053 			case GET_MASTER_PUBLIC_KEY:
24054 			case GLOBAL:
24055 			case GRANTS:
24056 			case GROUP_REPLICATION:
24057 			case HANDLER:
24058 			case HASH:
24059 			case HELP:
24060 			case HISTOGRAM:
24061 			case HISTORY:
24062 			case HOST:
24063 			case HOSTS:
24064 			case HOUR:
24065 			case IDENTIFIED:
24066 			case IF:
24067 			case IGNORE_SERVER_IDS:
24068 			case IMPORT:
24069 			case INACTIVE:
24070 			case INDEXES:
24071 			case INITIAL_SIZE:
24072 			case INSERT:
24073 			case INSERT_METHOD:
24074 			case INSTALL:
24075 			case INSTANCE:
24076 			case INTERVAL:
24077 			case INVISIBLE:
24078 			case INVOKER:
24079 			case IO:
24080 			case IPC:
24081 			case ISOLATION:
24082 			case ISSUER:
24083 			case JSON:
24084 			case JSON_TABLE:
24085 			case JSON_VALUE:
24086 			case KEY:
24087 			case KEY_BLOCK_SIZE:
24088 			case LAG:
24089 			case LANGUAGE:
24090 			case LAST:
24091 			case LAST_VALUE:
24092 			case LEAD:
24093 			case LEAVES:
24094 			case LEFT:
24095 			case LESS:
24096 			case LEVEL:
24097 			case LINESTRING:
24098 			case LIST:
24099 			case LOCAL:
24100 			case LOCALTIME:
24101 			case LOCALTIMESTAMP:
24102 			case LOCKED:
24103 			case LOCKS:
24104 			case LOGFILE:
24105 			case LOGS:
24106 			case MASTER:
24107 			case MASTER_AUTO_POSITION:
24108 			case MASTER_COMPRESSION_ALGORITHM:
24109 			case MASTER_CONNECT_RETRY:
24110 			case MASTER_DELAY:
24111 			case MASTER_HEARTBEAT_PERIOD:
24112 			case MASTER_HOST:
24113 			case MASTER_LOG_FILE:
24114 			case MASTER_LOG_POS:
24115 			case MASTER_PASSWORD:
24116 			case MASTER_PORT:
24117 			case MASTER_PUBLIC_KEY_PATH:
24118 			case MASTER_RETRY_COUNT:
24119 			case MASTER_SERVER_ID:
24120 			case MASTER_SSL:
24121 			case MASTER_SSL_CA:
24122 			case MASTER_SSL_CAPATH:
24123 			case MASTER_SSL_CERT:
24124 			case MASTER_SSL_CIPHER:
24125 			case MASTER_SSL_CRL:
24126 			case MASTER_SSL_CRLPATH:
24127 			case MASTER_SSL_KEY:
24128 			case MASTER_TLS_CIPHERSUITES:
24129 			case MASTER_TLS_VERSION:
24130 			case MASTER_USER:
24131 			case MASTER_ZSTD_COMPRESSION_LEVEL:
24132 			case MATCH:
24133 			case MAXVALUE:
24134 			case MAX_CONNECTIONS_PER_HOUR:
24135 			case MAX_QUERIES_PER_HOUR:
24136 			case MAX_ROWS:
24137 			case MAX_SIZE:
24138 			case MAX_UPDATES_PER_HOUR:
24139 			case MAX_USER_CONNECTIONS:
24140 			case MEDIUM:
24141 			case MEMBER:
24142 			case MEMORY:
24143 			case MERGE:
24144 			case MESSAGE_TEXT:
24145 			case MICROSECOND:
24146 			case MIGRATE:
24147 			case MINUTE:
24148 			case MIN_ROWS:
24149 			case MOD:
24150 			case MODE:
24151 			case MODIFY:
24152 			case MONTH:
24153 			case MULTILINESTRING:
24154 			case MULTIPOINT:
24155 			case MULTIPOLYGON:
24156 			case MUTEX:
24157 			case MYSQL_ERRNO:
24158 			case NAME:
24159 			case NAMES:
24160 			case NATIONAL:
24161 			case NCHAR:
24162 			case NDBCLUSTER:
24163 			case NESTED:
24164 			case NETWORK_NAMESPACE:
24165 			case NEVER:
24166 			case NEW:
24167 			case NEXT:
24168 			case NO:
24169 			case NODEGROUP:
24170 			case NONE:
24171 			case NOT:
24172 			case NOWAIT:
24173 			case NO_WAIT:
24174 			case NTH_VALUE:
24175 			case NTILE:
24176 			case NULL:
24177 			case NULLS:
24178 			case NUMBER:
24179 			case NVARCHAR:
24180 			case OFF:
24181 			case OFFSET:
24182 			case OJ:
24183 			case OLD:
24184 			case ONE:
24185 			case ONLY:
24186 			case OPEN:
24187 			case OPTIONAL:
24188 			case OPTIONS:
24189 			case ORDINALITY:
24190 			case ORGANIZATION:
24191 			case OTHERS:
24192 			case OWNER:
24193 			case PACK_KEYS:
24194 			case PAGE:
24195 			case PARSER:
24196 			case PARTIAL:
24197 			case PARTITIONING:
24198 			case PARTITIONS:
24199 			case PASSWORD:
24200 			case PASSWORD_LOCK_TIME:
24201 			case PATH:
24202 			case PERCENT_RANK:
24203 			case PERSIST:
24204 			case PERSIST_ONLY:
24205 			case PHASE:
24206 			case PLUGIN:
24207 			case PLUGINS:
24208 			case PLUGIN_DIR:
24209 			case POINT:
24210 			case POLYGON:
24211 			case PORT:
24212 			case PRECEDES:
24213 			case PRECEDING:
24214 			case PREPARE:
24215 			case PRESERVE:
24216 			case PREV:
24217 			case PRIMARY:
24218 			case PRIVILEGES:
24219 			case PRIVILEGE_CHECKS_USER:
24220 			case PROCESS:
24221 			case PROCESSLIST:
24222 			case PROFILE:
24223 			case PROFILES:
24224 			case PROXY:
24225 			case QUARTER:
24226 			case QUERY:
24227 			case QUICK:
24228 			case RANDOM:
24229 			case RANK:
24230 			case READ_ONLY:
24231 			case REBUILD:
24232 			case RECOVER:
24233 			case REDO_BUFFER_SIZE:
24234 			case REDUNDANT:
24235 			case REFERENCE:
24236 			case RELAY:
24237 			case RELAYLOG:
24238 			case RELAY_LOG_FILE:
24239 			case RELAY_LOG_POS:
24240 			case RELAY_THREAD:
24241 			case RELOAD:
24242 			case REMOVE:
24243 			case REORGANIZE:
24244 			case REPAIR:
24245 			case REPEAT:
24246 			case REPEATABLE:
24247 			case REPLACE:
24248 			case REPLICATE_DO_DB:
24249 			case REPLICATE_DO_TABLE:
24250 			case REPLICATE_IGNORE_DB:
24251 			case REPLICATE_IGNORE_TABLE:
24252 			case REPLICATE_REWRITE_DB:
24253 			case REPLICATE_WILD_DO_TABLE:
24254 			case REPLICATE_WILD_IGNORE_TABLE:
24255 			case REPLICATION:
24256 			case REQUIRE_ROW_FORMAT:
24257 			case RESET:
24258 			case RESOURCE:
24259 			case RESPECT:
24260 			case RESTART:
24261 			case RESTORE:
24262 			case RESUME:
24263 			case RETAIN:
24264 			case RETURNED_SQLSTATE:
24265 			case RETURNING:
24266 			case RETURNS:
24267 			case REUSE:
24268 			case REVERSE:
24269 			case RIGHT:
24270 			case ROLE:
24271 			case ROLLBACK:
24272 			case ROLLUP:
24273 			case ROTATE:
24274 			case ROUTINE:
24275 			case ROW:
24276 			case ROW_COUNT:
24277 			case ROW_FORMAT:
24278 			case ROW_NUMBER:
24279 			case RTREE:
24280 			case SAVEPOINT:
24281 			case SCHEDULE:
24282 			case SCHEMA:
24283 			case SCHEMA_NAME:
24284 			case SECOND:
24285 			case SECONDARY:
24286 			case SECONDARY_ENGINE:
24287 			case SECONDARY_ENGINE_ATTRIBUTE:
24288 			case SECONDARY_LOAD:
24289 			case SECONDARY_UNLOAD:
24290 			case SECURITY:
24291 			case SERIAL:
24292 			case SERIALIZABLE:
24293 			case SERVER:
24294 			case SESSION:
24295 			case SHARE:
24296 			case SHUTDOWN:
24297 			case SIGNED:
24298 			case SIMPLE:
24299 			case SLAVE:
24300 			case SLOW:
24301 			case SNAPSHOT:
24302 			case SOCKET:
24303 			case SONAME:
24304 			case SOUNDS:
24305 			case SOURCE:
24306 			case SQL_AFTER_GTIDS:
24307 			case SQL_AFTER_MTS_GAPS:
24308 			case SQL_BEFORE_GTIDS:
24309 			case SQL_BUFFER_RESULT:
24310 			case SQL_NO_CACHE:
24311 			case SQL_THREAD:
24312 			case SRID:
24313 			case STACKED:
24314 			case START:
24315 			case STARTS:
24316 			case STATS_AUTO_RECALC:
24317 			case STATS_PERSISTENT:
24318 			case STATS_SAMPLE_PAGES:
24319 			case STATUS:
24320 			case STOP:
24321 			case STORAGE:
24322 			case STREAM:
24323 			case STRING:
24324 			case SUBCLASS_ORIGIN:
24325 			case SUBJECT:
24326 			case SUBPARTITION:
24327 			case SUBPARTITIONS:
24328 			case SUPER:
24329 			case SUSPEND:
24330 			case SWAPS:
24331 			case SWITCHES:
24332 			case SYSTEM:
24333 			case TABLE:
24334 			case TABLES:
24335 			case TABLESPACE:
24336 			case TABLE_CHECKSUM:
24337 			case TABLE_NAME:
24338 			case TEMPORARY:
24339 			case TEMPTABLE:
24340 			case TEXT:
24341 			case THAN:
24342 			case THREAD_PRIORITY:
24343 			case TIES:
24344 			case TIME:
24345 			case TIMESTAMP:
24346 			case TIMESTAMP_ADD:
24347 			case TIMESTAMP_DIFF:
24348 			case TLS:
24349 			case TRANSACTION:
24350 			case TRIGGERS:
24351 			case TRUE:
24352 			case TRUNCATE:
24353 			case TYPE:
24354 			case TYPES:
24355 			case UNBOUNDED:
24356 			case UNCOMMITTED:
24357 			case UNDEFINED:
24358 			case UNDOFILE:
24359 			case UNDO_BUFFER_SIZE:
24360 			case UNICODE:
24361 			case UNINSTALL:
24362 			case UNKNOWN:
24363 			case UNTIL:
24364 			case UPGRADE:
24365 			case USER:
24366 			case USER_RESOURCES:
24367 			case USE_FRM:
24368 			case UTC_DATE:
24369 			case UTC_TIME:
24370 			case UTC_TIMESTAMP:
24371 			case VALIDATION:
24372 			case VALUE:
24373 			case VALUES:
24374 			case VARIABLES:
24375 			case VCPU:
24376 			case VIEW:
24377 			case VISIBLE:
24378 			case WAIT:
24379 			case WARNINGS:
24380 			case WEEK:
24381 			case WEIGHT_STRING:
24382 			case WITHOUT:
24383 			case WORK:
24384 			case WRAPPER:
24385 			case X509:
24386 			case XA:
24387 			case XID:
24388 			case XML:
24389 			case YEAR:
24390 			case YEAR_MONTH:
24391 			case JSON_ARRAY:
24392 			case JSON_ARRAY_APPEND:
24393 			case JSON_ARRAY_INSERT:
24394 			case JSON_CONTAINS:
24395 			case JSON_CONTAINS_PATH:
24396 			case JSON_DEPTH:
24397 			case JSON_EXTRACT:
24398 			case JSON_INSERT:
24399 			case JSON_KEYS:
24400 			case JSON_LENGTH:
24401 			case JSON_MERGE:
24402 			case JSON_MERGE_PATCH:
24403 			case JSON_MERGE_PRESERVE:
24404 			case JSON_OBJECT:
24405 			case JSON_OVERLAPS:
24406 			case JSON_PRETTY:
24407 			case JSON_QUOTE:
24408 			case JSON_REMOVE:
24409 			case JSON_REPLACE:
24410 			case JSON_SCHEMA_VALID:
24411 			case JSON_SCHEMA_VALIDATION_REPORT:
24412 			case JSON_SEARCH:
24413 			case JSON_SET:
24414 			case JSON_STORAGE_FREE:
24415 			case JSON_STORAGE_SIZE:
24416 			case JSON_TYPE:
24417 			case JSON_UNQUOTE:
24418 			case JSON_VALID:
24419 			case SINGLE_QUOTED_TEXT:
24420 			case DOUBLE_QUOTED_TEXT:
24421 			case BQUOTA_STRING:
24422 			case NCHAR_TEXT:
24423 			case UNDERSCORE_CHARSET:
24424 			case NUMBER_:
24425 			case HEX_DIGIT_:
24426 			case BIT_NUM_:
24427 			case IDENTIFIER_:
24428 			case IP_ADDRESS:
24429 				{
24430 				setState(2372);
24431 				expr(0);
24432 				setState(2377);
24433 				_errHandler.sync(this);
24434 				_la = _input.LA(1);
24435 				while (_la==COMMA_) {
24436 					{
24437 					{
24438 					setState(2373);
24439 					match(COMMA_);
24440 					setState(2374);
24441 					expr(0);
24442 					}
24443 					}
24444 					setState(2379);
24445 					_errHandler.sync(this);
24446 					_la = _input.LA(1);
24447 				}
24448 				}
24449 				break;
24450 			case ASTERISK_:
24451 				{
24452 				setState(2380);
24453 				match(ASTERISK_);
24454 				}
24455 				break;
24456 			case RP_:
24457 				break;
24458 			default:
24459 				break;
24460 			}
24461 			setState(2383);
24462 			match(RP_);
24463 			}
24464 			}
24465 		}
24466 		catch (RecognitionException re) {
24467 			_localctx.exception = re;
24468 			_errHandler.reportError(this, re);
24469 			_errHandler.recover(this, re);
24470 		}
24471 		finally {
24472 			exitRule();
24473 		}
24474 		return _localctx;
24475 	}
24476 
24477 	public static class RegularFunctionNameContext extends ParserRuleContext {
24478 		public TerminalNode IF() { return getToken(HiveStatementParser.IF, 0); }
24479 		public TerminalNode LOCALTIME() { return getToken(HiveStatementParser.LOCALTIME, 0); }
24480 		public TerminalNode LOCALTIMESTAMP() { return getToken(HiveStatementParser.LOCALTIMESTAMP, 0); }
24481 		public TerminalNode REPLACE() { return getToken(HiveStatementParser.REPLACE, 0); }
24482 		public TerminalNode INSERT() { return getToken(HiveStatementParser.INSERT, 0); }
24483 		public TerminalNode INTERVAL() { return getToken(HiveStatementParser.INTERVAL, 0); }
24484 		public TerminalNode MOD() { return getToken(HiveStatementParser.MOD, 0); }
24485 		public TerminalNode DATABASE() { return getToken(HiveStatementParser.DATABASE, 0); }
24486 		public TerminalNode SCHEMA() { return getToken(HiveStatementParser.SCHEMA, 0); }
24487 		public TerminalNode LEFT() { return getToken(HiveStatementParser.LEFT, 0); }
24488 		public TerminalNode RIGHT() { return getToken(HiveStatementParser.RIGHT, 0); }
24489 		public TerminalNode DATE() { return getToken(HiveStatementParser.DATE, 0); }
24490 		public TerminalNode DAY() { return getToken(HiveStatementParser.DAY, 0); }
24491 		public TerminalNode GEOMETRYCOLLECTION() { return getToken(HiveStatementParser.GEOMETRYCOLLECTION, 0); }
24492 		public TerminalNode REPEAT() { return getToken(HiveStatementParser.REPEAT, 0); }
24493 		public TerminalNode LINESTRING() { return getToken(HiveStatementParser.LINESTRING, 0); }
24494 		public TerminalNode MULTILINESTRING() { return getToken(HiveStatementParser.MULTILINESTRING, 0); }
24495 		public TerminalNode MULTIPOINT() { return getToken(HiveStatementParser.MULTIPOINT, 0); }
24496 		public TerminalNode MULTIPOLYGON() { return getToken(HiveStatementParser.MULTIPOLYGON, 0); }
24497 		public TerminalNode POINT() { return getToken(HiveStatementParser.POINT, 0); }
24498 		public TerminalNode POLYGON() { return getToken(HiveStatementParser.POLYGON, 0); }
24499 		public TerminalNode TIME() { return getToken(HiveStatementParser.TIME, 0); }
24500 		public TerminalNode TIMESTAMP() { return getToken(HiveStatementParser.TIMESTAMP, 0); }
24501 		public TerminalNode TIMESTAMP_ADD() { return getToken(HiveStatementParser.TIMESTAMP_ADD, 0); }
24502 		public TerminalNode TIMESTAMP_DIFF() { return getToken(HiveStatementParser.TIMESTAMP_DIFF, 0); }
24503 		public TerminalNode CURRENT_TIMESTAMP() { return getToken(HiveStatementParser.CURRENT_TIMESTAMP, 0); }
24504 		public TerminalNode CURRENT_DATE() { return getToken(HiveStatementParser.CURRENT_DATE, 0); }
24505 		public TerminalNode CURRENT_TIME() { return getToken(HiveStatementParser.CURRENT_TIME, 0); }
24506 		public TerminalNode UTC_TIMESTAMP() { return getToken(HiveStatementParser.UTC_TIMESTAMP, 0); }
24507 		public IdentifierContext identifier() {
24508 			return getRuleContext(IdentifierContext.class,0);
24509 		}
24510 		public RegularFunctionNameContext(ParserRuleContext parent, int invokingState) {
24511 			super(parent, invokingState);
24512 		}
24513 		@Override public int getRuleIndex() { return RULE_regularFunctionName; }
24514 		@Override
24515 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
24516 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitRegularFunctionName(this);
24517 			else return visitor.visitChildren(this);
24518 		}
24519 	}
24520 
24521 	public final RegularFunctionNameContext regularFunctionName() throws RecognitionException {
24522 		RegularFunctionNameContext _localctx = new RegularFunctionNameContext(_ctx, getState());
24523 		enterRule(_localctx, 410, RULE_regularFunctionName);
24524 		try {
24525 			setState(2416);
24526 			_errHandler.sync(this);
24527 			switch ( getInterpreter().adaptivePredict(_input,281,_ctx) ) {
24528 			case 1:
24529 				enterOuterAlt(_localctx, 1);
24530 				{
24531 				setState(2385);
24532 				match(IF);
24533 				}
24534 				break;
24535 			case 2:
24536 				enterOuterAlt(_localctx, 2);
24537 				{
24538 				setState(2386);
24539 				match(LOCALTIME);
24540 				}
24541 				break;
24542 			case 3:
24543 				enterOuterAlt(_localctx, 3);
24544 				{
24545 				setState(2387);
24546 				match(LOCALTIMESTAMP);
24547 				}
24548 				break;
24549 			case 4:
24550 				enterOuterAlt(_localctx, 4);
24551 				{
24552 				setState(2388);
24553 				match(REPLACE);
24554 				}
24555 				break;
24556 			case 5:
24557 				enterOuterAlt(_localctx, 5);
24558 				{
24559 				setState(2389);
24560 				match(INSERT);
24561 				}
24562 				break;
24563 			case 6:
24564 				enterOuterAlt(_localctx, 6);
24565 				{
24566 				setState(2390);
24567 				match(INTERVAL);
24568 				}
24569 				break;
24570 			case 7:
24571 				enterOuterAlt(_localctx, 7);
24572 				{
24573 				setState(2391);
24574 				match(MOD);
24575 				}
24576 				break;
24577 			case 8:
24578 				enterOuterAlt(_localctx, 8);
24579 				{
24580 				setState(2392);
24581 				match(DATABASE);
24582 				}
24583 				break;
24584 			case 9:
24585 				enterOuterAlt(_localctx, 9);
24586 				{
24587 				setState(2393);
24588 				match(SCHEMA);
24589 				}
24590 				break;
24591 			case 10:
24592 				enterOuterAlt(_localctx, 10);
24593 				{
24594 				setState(2394);
24595 				match(LEFT);
24596 				}
24597 				break;
24598 			case 11:
24599 				enterOuterAlt(_localctx, 11);
24600 				{
24601 				setState(2395);
24602 				match(RIGHT);
24603 				}
24604 				break;
24605 			case 12:
24606 				enterOuterAlt(_localctx, 12);
24607 				{
24608 				setState(2396);
24609 				match(DATE);
24610 				}
24611 				break;
24612 			case 13:
24613 				enterOuterAlt(_localctx, 13);
24614 				{
24615 				setState(2397);
24616 				match(DAY);
24617 				}
24618 				break;
24619 			case 14:
24620 				enterOuterAlt(_localctx, 14);
24621 				{
24622 				setState(2398);
24623 				match(GEOMETRYCOLLECTION);
24624 				}
24625 				break;
24626 			case 15:
24627 				enterOuterAlt(_localctx, 15);
24628 				{
24629 				setState(2399);
24630 				match(REPEAT);
24631 				}
24632 				break;
24633 			case 16:
24634 				enterOuterAlt(_localctx, 16);
24635 				{
24636 				setState(2400);
24637 				match(LINESTRING);
24638 				}
24639 				break;
24640 			case 17:
24641 				enterOuterAlt(_localctx, 17);
24642 				{
24643 				setState(2401);
24644 				match(MULTILINESTRING);
24645 				}
24646 				break;
24647 			case 18:
24648 				enterOuterAlt(_localctx, 18);
24649 				{
24650 				setState(2402);
24651 				match(MULTIPOINT);
24652 				}
24653 				break;
24654 			case 19:
24655 				enterOuterAlt(_localctx, 19);
24656 				{
24657 				setState(2403);
24658 				match(MULTIPOLYGON);
24659 				}
24660 				break;
24661 			case 20:
24662 				enterOuterAlt(_localctx, 20);
24663 				{
24664 				setState(2404);
24665 				match(POINT);
24666 				}
24667 				break;
24668 			case 21:
24669 				enterOuterAlt(_localctx, 21);
24670 				{
24671 				setState(2405);
24672 				match(POLYGON);
24673 				}
24674 				break;
24675 			case 22:
24676 				enterOuterAlt(_localctx, 22);
24677 				{
24678 				setState(2406);
24679 				match(TIME);
24680 				}
24681 				break;
24682 			case 23:
24683 				enterOuterAlt(_localctx, 23);
24684 				{
24685 				setState(2407);
24686 				match(TIMESTAMP);
24687 				}
24688 				break;
24689 			case 24:
24690 				enterOuterAlt(_localctx, 24);
24691 				{
24692 				setState(2408);
24693 				match(TIMESTAMP_ADD);
24694 				}
24695 				break;
24696 			case 25:
24697 				enterOuterAlt(_localctx, 25);
24698 				{
24699 				setState(2409);
24700 				match(TIMESTAMP_DIFF);
24701 				}
24702 				break;
24703 			case 26:
24704 				enterOuterAlt(_localctx, 26);
24705 				{
24706 				setState(2410);
24707 				match(DATE);
24708 				}
24709 				break;
24710 			case 27:
24711 				enterOuterAlt(_localctx, 27);
24712 				{
24713 				setState(2411);
24714 				match(CURRENT_TIMESTAMP);
24715 				}
24716 				break;
24717 			case 28:
24718 				enterOuterAlt(_localctx, 28);
24719 				{
24720 				setState(2412);
24721 				match(CURRENT_DATE);
24722 				}
24723 				break;
24724 			case 29:
24725 				enterOuterAlt(_localctx, 29);
24726 				{
24727 				setState(2413);
24728 				match(CURRENT_TIME);
24729 				}
24730 				break;
24731 			case 30:
24732 				enterOuterAlt(_localctx, 30);
24733 				{
24734 				setState(2414);
24735 				match(UTC_TIMESTAMP);
24736 				}
24737 				break;
24738 			case 31:
24739 				enterOuterAlt(_localctx, 31);
24740 				{
24741 				setState(2415);
24742 				identifier();
24743 				}
24744 				break;
24745 			}
24746 		}
24747 		catch (RecognitionException re) {
24748 			_localctx.exception = re;
24749 			_errHandler.reportError(this, re);
24750 			_errHandler.recover(this, re);
24751 		}
24752 		finally {
24753 			exitRule();
24754 		}
24755 		return _localctx;
24756 	}
24757 
24758 	public static class MatchExpressionContext extends ParserRuleContext {
24759 		public TerminalNode MATCH() { return getToken(HiveStatementParser.MATCH, 0); }
24760 		public TerminalNode AGAINST() { return getToken(HiveStatementParser.AGAINST, 0); }
24761 		public List<TerminalNode> LP_() { return getTokens(HiveStatementParser.LP_); }
24762 		public TerminalNode LP_(int i) {
24763 			return getToken(HiveStatementParser.LP_, i);
24764 		}
24765 		public ExprContext expr() {
24766 			return getRuleContext(ExprContext.class,0);
24767 		}
24768 		public List<TerminalNode> RP_() { return getTokens(HiveStatementParser.RP_); }
24769 		public TerminalNode RP_(int i) {
24770 			return getToken(HiveStatementParser.RP_, i);
24771 		}
24772 		public ColumnRefListContext columnRefList() {
24773 			return getRuleContext(ColumnRefListContext.class,0);
24774 		}
24775 		public MatchSearchModifierContext matchSearchModifier() {
24776 			return getRuleContext(MatchSearchModifierContext.class,0);
24777 		}
24778 		public MatchExpressionContext(ParserRuleContext parent, int invokingState) {
24779 			super(parent, invokingState);
24780 		}
24781 		@Override public int getRuleIndex() { return RULE_matchExpression; }
24782 		@Override
24783 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
24784 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitMatchExpression(this);
24785 			else return visitor.visitChildren(this);
24786 		}
24787 	}
24788 
24789 	public final MatchExpressionContext matchExpression() throws RecognitionException {
24790 		MatchExpressionContext _localctx = new MatchExpressionContext(_ctx, getState());
24791 		enterRule(_localctx, 412, RULE_matchExpression);
24792 		int _la;
24793 		try {
24794 			enterOuterAlt(_localctx, 1);
24795 			{
24796 			setState(2418);
24797 			match(MATCH);
24798 			setState(2424);
24799 			_errHandler.sync(this);
24800 			switch (_input.LA(1)) {
24801 			case MAX:
24802 			case MIN:
24803 			case SUM:
24804 			case COUNT:
24805 			case GROUP_CONCAT:
24806 			case CAST:
24807 			case POSITION:
24808 			case SUBSTRING:
24809 			case SUBSTR:
24810 			case EXTRACT:
24811 			case TRIM:
24812 			case LAST_DAY:
24813 			case TRADITIONAL:
24814 			case TREE:
24815 			case MYSQL_MAIN:
24816 			case MYSQL_ADMIN:
24817 			case INSTANT:
24818 			case INPLACE:
24819 			case COPY:
24820 			case UL_BINARY:
24821 			case AUTOCOMMIT:
24822 			case INNODB:
24823 			case REDO_LOG:
24824 			case ACCOUNT:
24825 			case ACTION:
24826 			case ACTIVE:
24827 			case ADMIN:
24828 			case AFTER:
24829 			case AGAINST:
24830 			case AGGREGATE:
24831 			case ALGORITHM:
24832 			case ALWAYS:
24833 			case ANY:
24834 			case ARRAY:
24835 			case ASCII:
24836 			case AT:
24837 			case ATTRIBUTE:
24838 			case AUTOEXTEND_SIZE:
24839 			case AUTO_INCREMENT:
24840 			case AVG:
24841 			case BIT_XOR:
24842 			case AVG_ROW_LENGTH:
24843 			case BACKUP:
24844 			case BEGIN:
24845 			case BINLOG:
24846 			case BIT:
24847 			case BLOCK:
24848 			case BOOL:
24849 			case BOOLEAN:
24850 			case BTREE:
24851 			case BUCKETS:
24852 			case BYTE:
24853 			case CACHE:
24854 			case CASCADED:
24855 			case CATALOG_NAME:
24856 			case CHAIN:
24857 			case CHANGED:
24858 			case CHANNEL:
24859 			case CHARSET:
24860 			case CHECKSUM:
24861 			case CIPHER:
24862 			case CLASS_ORIGIN:
24863 			case CLIENT:
24864 			case CLONE:
24865 			case CLOSE:
24866 			case COALESCE:
24867 			case CODE:
24868 			case COLLATION:
24869 			case COLUMNS:
24870 			case COLUMN_FORMAT:
24871 			case COLUMN_NAME:
24872 			case COMMENT:
24873 			case COMMIT:
24874 			case COMMITTED:
24875 			case COMPACT:
24876 			case COMPLETION:
24877 			case COMPONENT:
24878 			case COMPRESSED:
24879 			case COMPRESSION:
24880 			case CONCURRENT:
24881 			case CONNECTION:
24882 			case CONSISTENT:
24883 			case CONSTRAINT_CATALOG:
24884 			case CONSTRAINT_NAME:
24885 			case CONSTRAINT_SCHEMA:
24886 			case CONTAINS:
24887 			case CONTEXT:
24888 			case CPU:
24889 			case CREATE:
24890 			case CURRENT:
24891 			case CURSOR_NAME:
24892 			case DATA:
24893 			case DATAFILE:
24894 			case DATE:
24895 			case DATETIME:
24896 			case DAY:
24897 			case DAY_MINUTE:
24898 			case DEALLOCATE:
24899 			case DEFAULT_AUTH:
24900 			case DEFINER:
24901 			case DEFINITION:
24902 			case DELAY_KEY_WRITE:
24903 			case DESCRIPTION:
24904 			case DIAGNOSTICS:
24905 			case DIRECTORY:
24906 			case DISABLE:
24907 			case DISCARD:
24908 			case DISK:
24909 			case DO:
24910 			case DUMPFILE:
24911 			case DUPLICATE:
24912 			case DYNAMIC:
24913 			case ENABLE:
24914 			case ENCRYPTION:
24915 			case END:
24916 			case ENDS:
24917 			case ENFORCED:
24918 			case ENGINE:
24919 			case ENGINES:
24920 			case ENGINE_ATTRIBUTE:
24921 			case ENUM:
24922 			case ERROR:
24923 			case ERRORS:
24924 			case ESCAPE:
24925 			case EVENT:
24926 			case EVENTS:
24927 			case EVERY:
24928 			case EXCHANGE:
24929 			case EXCLUDE:
24930 			case EXECUTE:
24931 			case EXPANSION:
24932 			case EXPIRE:
24933 			case EXPORT:
24934 			case EXTENDED:
24935 			case EXTENT_SIZE:
24936 			case FAILED_LOGIN_ATTEMPTS:
24937 			case FAST:
24938 			case FAULTS:
24939 			case FILE:
24940 			case FILE_BLOCK_SIZE:
24941 			case FILTER:
24942 			case FIRST:
24943 			case FIXED:
24944 			case FLUSH:
24945 			case FOLLOWING:
24946 			case FOLLOWS:
24947 			case FORMAT:
24948 			case FOUND:
24949 			case FULL:
24950 			case GENERAL:
24951 			case GEOMETRY:
24952 			case GEOMETRYCOLLECTION:
24953 			case GET_FORMAT:
24954 			case GET_MASTER_PUBLIC_KEY:
24955 			case GLOBAL:
24956 			case GRANTS:
24957 			case GROUP_REPLICATION:
24958 			case HANDLER:
24959 			case HASH:
24960 			case HELP:
24961 			case HISTOGRAM:
24962 			case HISTORY:
24963 			case HOST:
24964 			case HOSTS:
24965 			case HOUR:
24966 			case IDENTIFIED:
24967 			case IGNORE_SERVER_IDS:
24968 			case IMPORT:
24969 			case INACTIVE:
24970 			case INDEXES:
24971 			case INITIAL_SIZE:
24972 			case INSERT_METHOD:
24973 			case INSTALL:
24974 			case INSTANCE:
24975 			case INVISIBLE:
24976 			case INVOKER:
24977 			case IO:
24978 			case IPC:
24979 			case ISOLATION:
24980 			case ISSUER:
24981 			case JSON:
24982 			case JSON_VALUE:
24983 			case KEY:
24984 			case KEY_BLOCK_SIZE:
24985 			case LANGUAGE:
24986 			case LAST:
24987 			case LAST_VALUE:
24988 			case LEAVES:
24989 			case LESS:
24990 			case LEVEL:
24991 			case LINESTRING:
24992 			case LIST:
24993 			case LOCAL:
24994 			case LOCKED:
24995 			case LOCKS:
24996 			case LOGFILE:
24997 			case LOGS:
24998 			case MASTER:
24999 			case MASTER_AUTO_POSITION:
25000 			case MASTER_COMPRESSION_ALGORITHM:
25001 			case MASTER_CONNECT_RETRY:
25002 			case MASTER_DELAY:
25003 			case MASTER_HEARTBEAT_PERIOD:
25004 			case MASTER_HOST:
25005 			case MASTER_LOG_FILE:
25006 			case MASTER_LOG_POS:
25007 			case MASTER_PASSWORD:
25008 			case MASTER_PORT:
25009 			case MASTER_PUBLIC_KEY_PATH:
25010 			case MASTER_RETRY_COUNT:
25011 			case MASTER_SERVER_ID:
25012 			case MASTER_SSL:
25013 			case MASTER_SSL_CA:
25014 			case MASTER_SSL_CAPATH:
25015 			case MASTER_SSL_CERT:
25016 			case MASTER_SSL_CIPHER:
25017 			case MASTER_SSL_CRL:
25018 			case MASTER_SSL_CRLPATH:
25019 			case MASTER_SSL_KEY:
25020 			case MASTER_TLS_CIPHERSUITES:
25021 			case MASTER_TLS_VERSION:
25022 			case MASTER_USER:
25023 			case MASTER_ZSTD_COMPRESSION_LEVEL:
25024 			case MAXVALUE:
25025 			case MAX_CONNECTIONS_PER_HOUR:
25026 			case MAX_QUERIES_PER_HOUR:
25027 			case MAX_ROWS:
25028 			case MAX_SIZE:
25029 			case MAX_UPDATES_PER_HOUR:
25030 			case MAX_USER_CONNECTIONS:
25031 			case MEDIUM:
25032 			case MEMBER:
25033 			case MEMORY:
25034 			case MERGE:
25035 			case MESSAGE_TEXT:
25036 			case MICROSECOND:
25037 			case MIGRATE:
25038 			case MINUTE:
25039 			case MIN_ROWS:
25040 			case MODE:
25041 			case MODIFY:
25042 			case MONTH:
25043 			case MULTILINESTRING:
25044 			case MULTIPOINT:
25045 			case MULTIPOLYGON:
25046 			case MUTEX:
25047 			case MYSQL_ERRNO:
25048 			case NAME:
25049 			case NAMES:
25050 			case NATIONAL:
25051 			case NCHAR:
25052 			case NDBCLUSTER:
25053 			case NESTED:
25054 			case NETWORK_NAMESPACE:
25055 			case NEVER:
25056 			case NEW:
25057 			case NEXT:
25058 			case NO:
25059 			case NODEGROUP:
25060 			case NONE:
25061 			case NOWAIT:
25062 			case NO_WAIT:
25063 			case NULLS:
25064 			case NUMBER:
25065 			case NVARCHAR:
25066 			case OFF:
25067 			case OFFSET:
25068 			case OJ:
25069 			case OLD:
25070 			case ONE:
25071 			case ONLY:
25072 			case OPEN:
25073 			case OPTIONAL:
25074 			case OPTIONS:
25075 			case ORDINALITY:
25076 			case ORGANIZATION:
25077 			case OTHERS:
25078 			case OWNER:
25079 			case PACK_KEYS:
25080 			case PAGE:
25081 			case PARSER:
25082 			case PARTIAL:
25083 			case PARTITIONING:
25084 			case PARTITIONS:
25085 			case PASSWORD:
25086 			case PASSWORD_LOCK_TIME:
25087 			case PATH:
25088 			case PERSIST:
25089 			case PERSIST_ONLY:
25090 			case PHASE:
25091 			case PLUGIN:
25092 			case PLUGINS:
25093 			case PLUGIN_DIR:
25094 			case POINT:
25095 			case POLYGON:
25096 			case PORT:
25097 			case PRECEDES:
25098 			case PRECEDING:
25099 			case PREPARE:
25100 			case PRESERVE:
25101 			case PREV:
25102 			case PRIMARY:
25103 			case PRIVILEGES:
25104 			case PRIVILEGE_CHECKS_USER:
25105 			case PROCESS:
25106 			case PROCESSLIST:
25107 			case PROFILE:
25108 			case PROFILES:
25109 			case PROXY:
25110 			case QUARTER:
25111 			case QUERY:
25112 			case QUICK:
25113 			case RANDOM:
25114 			case READ_ONLY:
25115 			case REBUILD:
25116 			case RECOVER:
25117 			case REDO_BUFFER_SIZE:
25118 			case REDUNDANT:
25119 			case REFERENCE:
25120 			case RELAY:
25121 			case RELAYLOG:
25122 			case RELAY_LOG_FILE:
25123 			case RELAY_LOG_POS:
25124 			case RELAY_THREAD:
25125 			case RELOAD:
25126 			case REMOVE:
25127 			case REORGANIZE:
25128 			case REPAIR:
25129 			case REPEATABLE:
25130 			case REPLICATE_DO_DB:
25131 			case REPLICATE_DO_TABLE:
25132 			case REPLICATE_IGNORE_DB:
25133 			case REPLICATE_IGNORE_TABLE:
25134 			case REPLICATE_REWRITE_DB:
25135 			case REPLICATE_WILD_DO_TABLE:
25136 			case REPLICATE_WILD_IGNORE_TABLE:
25137 			case REPLICATION:
25138 			case REQUIRE_ROW_FORMAT:
25139 			case RESET:
25140 			case RESOURCE:
25141 			case RESPECT:
25142 			case RESTART:
25143 			case RESTORE:
25144 			case RESUME:
25145 			case RETAIN:
25146 			case RETURNED_SQLSTATE:
25147 			case RETURNING:
25148 			case RETURNS:
25149 			case REUSE:
25150 			case REVERSE:
25151 			case ROLE:
25152 			case ROLLBACK:
25153 			case ROLLUP:
25154 			case ROTATE:
25155 			case ROUTINE:
25156 			case ROW_COUNT:
25157 			case ROW_FORMAT:
25158 			case RTREE:
25159 			case SAVEPOINT:
25160 			case SCHEDULE:
25161 			case SCHEMA_NAME:
25162 			case SECOND:
25163 			case SECONDARY:
25164 			case SECONDARY_ENGINE:
25165 			case SECONDARY_ENGINE_ATTRIBUTE:
25166 			case SECONDARY_LOAD:
25167 			case SECONDARY_UNLOAD:
25168 			case SECURITY:
25169 			case SERIAL:
25170 			case SERIALIZABLE:
25171 			case SERVER:
25172 			case SESSION:
25173 			case SHARE:
25174 			case SHUTDOWN:
25175 			case SIGNED:
25176 			case SIMPLE:
25177 			case SLAVE:
25178 			case SLOW:
25179 			case SNAPSHOT:
25180 			case SOCKET:
25181 			case SONAME:
25182 			case SOUNDS:
25183 			case SOURCE:
25184 			case SQL_AFTER_GTIDS:
25185 			case SQL_AFTER_MTS_GAPS:
25186 			case SQL_BEFORE_GTIDS:
25187 			case SQL_BUFFER_RESULT:
25188 			case SQL_NO_CACHE:
25189 			case SQL_THREAD:
25190 			case SRID:
25191 			case STACKED:
25192 			case START:
25193 			case STARTS:
25194 			case STATS_AUTO_RECALC:
25195 			case STATS_PERSISTENT:
25196 			case STATS_SAMPLE_PAGES:
25197 			case STATUS:
25198 			case STOP:
25199 			case STORAGE:
25200 			case STREAM:
25201 			case STRING:
25202 			case SUBCLASS_ORIGIN:
25203 			case SUBJECT:
25204 			case SUBPARTITION:
25205 			case SUBPARTITIONS:
25206 			case SUPER:
25207 			case SUSPEND:
25208 			case SWAPS:
25209 			case SWITCHES:
25210 			case SYSTEM:
25211 			case TABLE:
25212 			case TABLES:
25213 			case TABLESPACE:
25214 			case TABLE_CHECKSUM:
25215 			case TABLE_NAME:
25216 			case TEMPORARY:
25217 			case TEMPTABLE:
25218 			case TEXT:
25219 			case THAN:
25220 			case THREAD_PRIORITY:
25221 			case TIES:
25222 			case TIME:
25223 			case TIMESTAMP:
25224 			case TIMESTAMP_ADD:
25225 			case TIMESTAMP_DIFF:
25226 			case TLS:
25227 			case TRANSACTION:
25228 			case TRIGGERS:
25229 			case TRUNCATE:
25230 			case TYPE:
25231 			case TYPES:
25232 			case UNBOUNDED:
25233 			case UNCOMMITTED:
25234 			case UNDEFINED:
25235 			case UNDOFILE:
25236 			case UNDO_BUFFER_SIZE:
25237 			case UNICODE:
25238 			case UNINSTALL:
25239 			case UNKNOWN:
25240 			case UNTIL:
25241 			case UPGRADE:
25242 			case USER:
25243 			case USER_RESOURCES:
25244 			case USE_FRM:
25245 			case UTC_DATE:
25246 			case UTC_TIME:
25247 			case UTC_TIMESTAMP:
25248 			case VALIDATION:
25249 			case VALUE:
25250 			case VARIABLES:
25251 			case VCPU:
25252 			case VIEW:
25253 			case VISIBLE:
25254 			case WAIT:
25255 			case WARNINGS:
25256 			case WEEK:
25257 			case WEIGHT_STRING:
25258 			case WITHOUT:
25259 			case WORK:
25260 			case WRAPPER:
25261 			case X509:
25262 			case XA:
25263 			case XID:
25264 			case XML:
25265 			case YEAR:
25266 			case YEAR_MONTH:
25267 			case DOUBLE_QUOTED_TEXT:
25268 			case BQUOTA_STRING:
25269 			case UNDERSCORE_CHARSET:
25270 			case IDENTIFIER_:
25271 				{
25272 				setState(2419);
25273 				columnRefList();
25274 				}
25275 				break;
25276 			case LP_:
25277 				{
25278 				setState(2420);
25279 				match(LP_);
25280 				setState(2421);
25281 				columnRefList();
25282 				setState(2422);
25283 				match(RP_);
25284 				}
25285 				break;
25286 			default:
25287 				throw new NoViableAltException(this);
25288 			}
25289 			setState(2426);
25290 			match(AGAINST);
25291 			setState(2427);
25292 			match(LP_);
25293 			setState(2428);
25294 			expr(0);
25295 			setState(2430);
25296 			_errHandler.sync(this);
25297 			_la = _input.LA(1);
25298 			if (_la==IN || _la==WITH) {
25299 				{
25300 				setState(2429);
25301 				matchSearchModifier();
25302 				}
25303 			}
25304 
25305 			setState(2432);
25306 			match(RP_);
25307 			}
25308 		}
25309 		catch (RecognitionException re) {
25310 			_localctx.exception = re;
25311 			_errHandler.reportError(this, re);
25312 			_errHandler.recover(this, re);
25313 		}
25314 		finally {
25315 			exitRule();
25316 		}
25317 		return _localctx;
25318 	}
25319 
25320 	public static class MatchSearchModifierContext extends ParserRuleContext {
25321 		public TerminalNode IN() { return getToken(HiveStatementParser.IN, 0); }
25322 		public TerminalNode NATURAL() { return getToken(HiveStatementParser.NATURAL, 0); }
25323 		public TerminalNode LANGUAGE() { return getToken(HiveStatementParser.LANGUAGE, 0); }
25324 		public TerminalNode MODE() { return getToken(HiveStatementParser.MODE, 0); }
25325 		public TerminalNode WITH() { return getToken(HiveStatementParser.WITH, 0); }
25326 		public TerminalNode QUERY() { return getToken(HiveStatementParser.QUERY, 0); }
25327 		public TerminalNode EXPANSION() { return getToken(HiveStatementParser.EXPANSION, 0); }
25328 		public TerminalNode BOOLEAN() { return getToken(HiveStatementParser.BOOLEAN, 0); }
25329 		public MatchSearchModifierContext(ParserRuleContext parent, int invokingState) {
25330 			super(parent, invokingState);
25331 		}
25332 		@Override public int getRuleIndex() { return RULE_matchSearchModifier; }
25333 		@Override
25334 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25335 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitMatchSearchModifier(this);
25336 			else return visitor.visitChildren(this);
25337 		}
25338 	}
25339 
25340 	public final MatchSearchModifierContext matchSearchModifier() throws RecognitionException {
25341 		MatchSearchModifierContext _localctx = new MatchSearchModifierContext(_ctx, getState());
25342 		enterRule(_localctx, 414, RULE_matchSearchModifier);
25343 		try {
25344 			setState(2451);
25345 			_errHandler.sync(this);
25346 			switch ( getInterpreter().adaptivePredict(_input,284,_ctx) ) {
25347 			case 1:
25348 				enterOuterAlt(_localctx, 1);
25349 				{
25350 				setState(2434);
25351 				match(IN);
25352 				setState(2435);
25353 				match(NATURAL);
25354 				setState(2436);
25355 				match(LANGUAGE);
25356 				setState(2437);
25357 				match(MODE);
25358 				}
25359 				break;
25360 			case 2:
25361 				enterOuterAlt(_localctx, 2);
25362 				{
25363 				setState(2438);
25364 				match(IN);
25365 				setState(2439);
25366 				match(NATURAL);
25367 				setState(2440);
25368 				match(LANGUAGE);
25369 				setState(2441);
25370 				match(MODE);
25371 				setState(2442);
25372 				match(WITH);
25373 				setState(2443);
25374 				match(QUERY);
25375 				setState(2444);
25376 				match(EXPANSION);
25377 				}
25378 				break;
25379 			case 3:
25380 				enterOuterAlt(_localctx, 3);
25381 				{
25382 				setState(2445);
25383 				match(IN);
25384 				setState(2446);
25385 				match(BOOLEAN);
25386 				setState(2447);
25387 				match(MODE);
25388 				}
25389 				break;
25390 			case 4:
25391 				enterOuterAlt(_localctx, 4);
25392 				{
25393 				setState(2448);
25394 				match(WITH);
25395 				setState(2449);
25396 				match(QUERY);
25397 				setState(2450);
25398 				match(EXPANSION);
25399 				}
25400 				break;
25401 			}
25402 		}
25403 		catch (RecognitionException re) {
25404 			_localctx.exception = re;
25405 			_errHandler.reportError(this, re);
25406 			_errHandler.recover(this, re);
25407 		}
25408 		finally {
25409 			exitRule();
25410 		}
25411 		return _localctx;
25412 	}
25413 
25414 	public static class CaseExpressionContext extends ParserRuleContext {
25415 		public TerminalNode CASE() { return getToken(HiveStatementParser.CASE, 0); }
25416 		public TerminalNode END() { return getToken(HiveStatementParser.END, 0); }
25417 		public SimpleExprContext simpleExpr() {
25418 			return getRuleContext(SimpleExprContext.class,0);
25419 		}
25420 		public List<CaseWhenContext> caseWhen() {
25421 			return getRuleContexts(CaseWhenContext.class);
25422 		}
25423 		public CaseWhenContext caseWhen(int i) {
25424 			return getRuleContext(CaseWhenContext.class,i);
25425 		}
25426 		public CaseElseContext caseElse() {
25427 			return getRuleContext(CaseElseContext.class,0);
25428 		}
25429 		public CaseExpressionContext(ParserRuleContext parent, int invokingState) {
25430 			super(parent, invokingState);
25431 		}
25432 		@Override public int getRuleIndex() { return RULE_caseExpression; }
25433 		@Override
25434 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25435 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCaseExpression(this);
25436 			else return visitor.visitChildren(this);
25437 		}
25438 	}
25439 
25440 	public final CaseExpressionContext caseExpression() throws RecognitionException {
25441 		CaseExpressionContext _localctx = new CaseExpressionContext(_ctx, getState());
25442 		enterRule(_localctx, 416, RULE_caseExpression);
25443 		int _la;
25444 		try {
25445 			enterOuterAlt(_localctx, 1);
25446 			{
25447 			setState(2453);
25448 			match(CASE);
25449 			setState(2455);
25450 			_errHandler.sync(this);
25451 			_la = _input.LA(1);
25452 			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << NOT_) | (1L << TILDE_) | (1L << PLUS_) | (1L << MINUS_) | (1L << LP_) | (1L << LBE_) | (1L << QUESTION_) | (1L << AT_) | (1L << MAX) | (1L << MIN) | (1L << SUM) | (1L << COUNT) | (1L << GROUP_CONCAT) | (1L << CAST) | (1L << POSITION) | (1L << SUBSTRING) | (1L << SUBSTR) | (1L << EXTRACT) | (1L << TRIM) | (1L << LAST_DAY) | (1L << TRADITIONAL) | (1L << TREE) | (1L << MYSQL_MAIN) | (1L << MYSQL_ADMIN) | (1L << INSTANT))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (INPLACE - 64)) | (1L << (COPY - 64)) | (1L << (UL_BINARY - 64)) | (1L << (AUTOCOMMIT - 64)) | (1L << (INNODB - 64)) | (1L << (REDO_LOG - 64)) | (1L << (ACCOUNT - 64)) | (1L << (ACTION - 64)) | (1L << (ACTIVE - 64)) | (1L << (ADMIN - 64)) | (1L << (AFTER - 64)) | (1L << (AGAINST - 64)) | (1L << (AGGREGATE - 64)) | (1L << (ALGORITHM - 64)) | (1L << (ALWAYS - 64)) | (1L << (ANY - 64)) | (1L << (ARRAY - 64)) | (1L << (ASCII - 64)) | (1L << (AT - 64)) | (1L << (ATTRIBUTE - 64)) | (1L << (AUTOEXTEND_SIZE - 64)) | (1L << (AUTO_INCREMENT - 64)) | (1L << (AVG - 64)) | (1L << (BIT_XOR - 64)) | (1L << (AVG_ROW_LENGTH - 64)) | (1L << (BACKUP - 64)) | (1L << (BEGIN - 64)) | (1L << (BINARY - 64)) | (1L << (BINLOG - 64)) | (1L << (BIT - 64)) | (1L << (BLOCK - 64)) | (1L << (BOOL - 64)) | (1L << (BOOLEAN - 64)) | (1L << (BTREE - 64)) | (1L << (BUCKETS - 64)) | (1L << (BYTE - 64)) | (1L << (CACHE - 64)) | (1L << (CASCADED - 64)) | (1L << (CASE - 64)) | (1L << (CATALOG_NAME - 64)) | (1L << (CHAIN - 64)) | (1L << (CHANGED - 64)) | (1L << (CHANNEL - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (CHAR - 128)) | (1L << (CHARSET - 128)) | (1L << (CHECKSUM - 128)) | (1L << (CIPHER - 128)) | (1L << (CLASS_ORIGIN - 128)) | (1L << (CLIENT - 128)) | (1L << (CLONE - 128)) | (1L << (CLOSE - 128)) | (1L << (COALESCE - 128)) | (1L << (CODE - 128)) | (1L << (COLLATION - 128)) | (1L << (COLUMNS - 128)) | (1L << (COLUMN_FORMAT - 128)) | (1L << (COLUMN_NAME - 128)) | (1L << (COMMENT - 128)) | (1L << (COMMIT - 128)) | (1L << (COMMITTED - 128)) | (1L << (COMPACT - 128)) | (1L << (COMPLETION - 128)) | (1L << (COMPONENT - 128)) | (1L << (COMPRESSED - 128)) | (1L << (COMPRESSION - 128)) | (1L << (CONCURRENT - 128)) | (1L << (CONNECTION - 128)) | (1L << (CONSISTENT - 128)) | (1L << (CONSTRAINT_CATALOG - 128)) | (1L << (CONSTRAINT_NAME - 128)) | (1L << (CONSTRAINT_SCHEMA - 128)) | (1L << (CONTAINS - 128)) | (1L << (CONTEXT - 128)) | (1L << (CONVERT - 128)) | (1L << (CPU - 128)) | (1L << (CREATE - 128)) | (1L << (CUME_DIST - 128)) | (1L << (CURRENT - 128)) | (1L << (CURRENT_DATE - 128)) | (1L << (CURRENT_TIME - 128)) | (1L << (CURRENT_TIMESTAMP - 128)) | (1L << (CURRENT_USER - 128)) | (1L << (CURSOR_NAME - 128)) | (1L << (DATA - 128)) | (1L << (DATABASE - 128)) | (1L << (DATAFILE - 128)) | (1L << (DATE - 128)) | (1L << (DATETIME - 128)) | (1L << (DAY - 128)) | (1L << (DAY_MINUTE - 128)) | (1L << (DEALLOCATE - 128)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (DEFAULT_AUTH - 196)) | (1L << (DEFINER - 196)) | (1L << (DEFINITION - 196)) | (1L << (DELAY_KEY_WRITE - 196)) | (1L << (DENSE_RANK - 196)) | (1L << (DESCRIPTION - 196)) | (1L << (DIAGNOSTICS - 196)) | (1L << (DIRECTORY - 196)) | (1L << (DISABLE - 196)) | (1L << (DISCARD - 196)) | (1L << (DISK - 196)) | (1L << (DO - 196)) | (1L << (DUMPFILE - 196)) | (1L << (DUPLICATE - 196)) | (1L << (DYNAMIC - 196)) | (1L << (ENABLE - 196)) | (1L << (ENCRYPTION - 196)) | (1L << (END - 196)) | (1L << (ENDS - 196)) | (1L << (ENFORCED - 196)) | (1L << (ENGINE - 196)) | (1L << (ENGINES - 196)) | (1L << (ENGINE_ATTRIBUTE - 196)) | (1L << (ENUM - 196)) | (1L << (ERROR - 196)) | (1L << (ERRORS - 196)) | (1L << (ESCAPE - 196)) | (1L << (EVENT - 196)) | (1L << (EVENTS - 196)) | (1L << (EVERY - 196)) | (1L << (EXCHANGE - 196)) | (1L << (EXCLUDE - 196)) | (1L << (EXECUTE - 196)) | (1L << (EXISTS - 196)) | (1L << (EXPANSION - 196)) | (1L << (EXPIRE - 196)) | (1L << (EXPORT - 196)) | (1L << (EXTENDED - 196)) | (1L << (EXTENT_SIZE - 196)) | (1L << (FAILED_LOGIN_ATTEMPTS - 196)) | (1L << (FALSE - 196)) | (1L << (FAST - 196)) | (1L << (FAULTS - 196)))) != 0) || ((((_la - 260)) & ~0x3f) == 0 && ((1L << (_la - 260)) & ((1L << (FILE - 260)) | (1L << (FILE_BLOCK_SIZE - 260)) | (1L << (FILTER - 260)) | (1L << (FIRST - 260)) | (1L << (FIRST_VALUE - 260)) | (1L << (FIXED - 260)) | (1L << (FLUSH - 260)) | (1L << (FOLLOWING - 260)) | (1L << (FOLLOWS - 260)) | (1L << (FORMAT - 260)) | (1L << (FOUND - 260)) | (1L << (FULL - 260)) | (1L << (GENERAL - 260)) | (1L << (GEOMETRY - 260)) | (1L << (GEOMETRYCOLLECTION - 260)) | (1L << (GET_FORMAT - 260)) | (1L << (GET_MASTER_PUBLIC_KEY - 260)) | (1L << (GLOBAL - 260)) | (1L << (GRANTS - 260)) | (1L << (GROUP_REPLICATION - 260)) | (1L << (HANDLER - 260)) | (1L << (HASH - 260)) | (1L << (HELP - 260)) | (1L << (HISTOGRAM - 260)) | (1L << (HISTORY - 260)) | (1L << (HOST - 260)) | (1L << (HOSTS - 260)) | (1L << (HOUR - 260)) | (1L << (IDENTIFIED - 260)) | (1L << (IF - 260)) | (1L << (IGNORE_SERVER_IDS - 260)) | (1L << (IMPORT - 260)) | (1L << (INACTIVE - 260)) | (1L << (INDEXES - 260)) | (1L << (INITIAL_SIZE - 260)))) != 0) || ((((_la - 326)) & ~0x3f) == 0 && ((1L << (_la - 326)) & ((1L << (INSERT - 326)) | (1L << (INSERT_METHOD - 326)) | (1L << (INSTALL - 326)) | (1L << (INSTANCE - 326)) | (1L << (INTERVAL - 326)) | (1L << (INVISIBLE - 326)) | (1L << (INVOKER - 326)) | (1L << (IO - 326)) | (1L << (IPC - 326)) | (1L << (ISOLATION - 326)) | (1L << (ISSUER - 326)) | (1L << (JSON - 326)) | (1L << (JSON_TABLE - 326)) | (1L << (JSON_VALUE - 326)) | (1L << (KEY - 326)) | (1L << (KEY_BLOCK_SIZE - 326)) | (1L << (LAG - 326)) | (1L << (LANGUAGE - 326)) | (1L << (LAST - 326)) | (1L << (LAST_VALUE - 326)) | (1L << (LEAD - 326)) | (1L << (LEAVES - 326)) | (1L << (LEFT - 326)) | (1L << (LESS - 326)) | (1L << (LEVEL - 326)) | (1L << (LINESTRING - 326)) | (1L << (LIST - 326)) | (1L << (LOCAL - 326)) | (1L << (LOCALTIME - 326)) | (1L << (LOCALTIMESTAMP - 326)) | (1L << (LOCKED - 326)) | (1L << (LOCKS - 326)) | (1L << (LOGFILE - 326)) | (1L << (LOGS - 326)))) != 0) || ((((_la - 391)) & ~0x3f) == 0 && ((1L << (_la - 391)) & ((1L << (MASTER - 391)) | (1L << (MASTER_AUTO_POSITION - 391)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 391)) | (1L << (MASTER_CONNECT_RETRY - 391)) | (1L << (MASTER_DELAY - 391)) | (1L << (MASTER_HEARTBEAT_PERIOD - 391)) | (1L << (MASTER_HOST - 391)) | (1L << (MASTER_LOG_FILE - 391)) | (1L << (MASTER_LOG_POS - 391)) | (1L << (MASTER_PASSWORD - 391)) | (1L << (MASTER_PORT - 391)) | (1L << (MASTER_PUBLIC_KEY_PATH - 391)) | (1L << (MASTER_RETRY_COUNT - 391)) | (1L << (MASTER_SERVER_ID - 391)) | (1L << (MASTER_SSL - 391)) | (1L << (MASTER_SSL_CA - 391)) | (1L << (MASTER_SSL_CAPATH - 391)) | (1L << (MASTER_SSL_CERT - 391)) | (1L << (MASTER_SSL_CIPHER - 391)) | (1L << (MASTER_SSL_CRL - 391)) | (1L << (MASTER_SSL_CRLPATH - 391)) | (1L << (MASTER_SSL_KEY - 391)) | (1L << (MASTER_TLS_CIPHERSUITES - 391)) | (1L << (MASTER_TLS_VERSION - 391)) | (1L << (MASTER_USER - 391)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 391)) | (1L << (MATCH - 391)) | (1L << (MAXVALUE - 391)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 391)) | (1L << (MAX_QUERIES_PER_HOUR - 391)) | (1L << (MAX_ROWS - 391)) | (1L << (MAX_SIZE - 391)) | (1L << (MAX_UPDATES_PER_HOUR - 391)) | (1L << (MAX_USER_CONNECTIONS - 391)) | (1L << (MEDIUM - 391)) | (1L << (MEMBER - 391)) | (1L << (MEMORY - 391)) | (1L << (MERGE - 391)) | (1L << (MESSAGE_TEXT - 391)) | (1L << (MICROSECOND - 391)) | (1L << (MIGRATE - 391)) | (1L << (MINUTE - 391)) | (1L << (MIN_ROWS - 391)) | (1L << (MOD - 391)) | (1L << (MODE - 391)) | (1L << (MODIFY - 391)) | (1L << (MONTH - 391)) | (1L << (MULTILINESTRING - 391)) | (1L << (MULTIPOINT - 391)) | (1L << (MULTIPOLYGON - 391)) | (1L << (MUTEX - 391)) | (1L << (MYSQL_ERRNO - 391)) | (1L << (NAME - 391)) | (1L << (NAMES - 391)) | (1L << (NATIONAL - 391)))) != 0) || ((((_la - 458)) & ~0x3f) == 0 && ((1L << (_la - 458)) & ((1L << (NCHAR - 458)) | (1L << (NDBCLUSTER - 458)) | (1L << (NESTED - 458)) | (1L << (NETWORK_NAMESPACE - 458)) | (1L << (NEVER - 458)) | (1L << (NEW - 458)) | (1L << (NEXT - 458)) | (1L << (NO - 458)) | (1L << (NODEGROUP - 458)) | (1L << (NONE - 458)) | (1L << (NOT - 458)) | (1L << (NOWAIT - 458)) | (1L << (NO_WAIT - 458)) | (1L << (NTH_VALUE - 458)) | (1L << (NTILE - 458)) | (1L << (NULL - 458)) | (1L << (NULLS - 458)) | (1L << (NUMBER - 458)) | (1L << (NVARCHAR - 458)) | (1L << (OFF - 458)) | (1L << (OFFSET - 458)) | (1L << (OJ - 458)) | (1L << (OLD - 458)) | (1L << (ONE - 458)) | (1L << (ONLY - 458)) | (1L << (OPEN - 458)) | (1L << (OPTIONAL - 458)) | (1L << (OPTIONS - 458)) | (1L << (ORDINALITY - 458)) | (1L << (ORGANIZATION - 458)) | (1L << (OTHERS - 458)) | (1L << (OWNER - 458)) | (1L << (PACK_KEYS - 458)) | (1L << (PAGE - 458)) | (1L << (PARSER - 458)) | (1L << (PARTIAL - 458)) | (1L << (PARTITIONING - 458)) | (1L << (PARTITIONS - 458)) | (1L << (PASSWORD - 458)) | (1L << (PASSWORD_LOCK_TIME - 458)) | (1L << (PATH - 458)) | (1L << (PERCENT_RANK - 458)) | (1L << (PERSIST - 458)) | (1L << (PERSIST_ONLY - 458)) | (1L << (PHASE - 458)) | (1L << (PLUGIN - 458)) | (1L << (PLUGINS - 458)))) != 0) || ((((_la - 522)) & ~0x3f) == 0 && ((1L << (_la - 522)) & ((1L << (PLUGIN_DIR - 522)) | (1L << (POINT - 522)) | (1L << (POLYGON - 522)) | (1L << (PORT - 522)) | (1L << (PRECEDES - 522)) | (1L << (PRECEDING - 522)) | (1L << (PREPARE - 522)) | (1L << (PRESERVE - 522)) | (1L << (PREV - 522)) | (1L << (PRIMARY - 522)) | (1L << (PRIVILEGES - 522)) | (1L << (PRIVILEGE_CHECKS_USER - 522)) | (1L << (PROCESS - 522)) | (1L << (PROCESSLIST - 522)) | (1L << (PROFILE - 522)) | (1L << (PROFILES - 522)) | (1L << (PROXY - 522)) | (1L << (QUARTER - 522)) | (1L << (QUERY - 522)) | (1L << (QUICK - 522)) | (1L << (RANDOM - 522)) | (1L << (RANK - 522)) | (1L << (READ_ONLY - 522)) | (1L << (REBUILD - 522)) | (1L << (RECOVER - 522)) | (1L << (REDO_BUFFER_SIZE - 522)) | (1L << (REDUNDANT - 522)) | (1L << (REFERENCE - 522)) | (1L << (RELAY - 522)) | (1L << (RELAYLOG - 522)) | (1L << (RELAY_LOG_FILE - 522)) | (1L << (RELAY_LOG_POS - 522)) | (1L << (RELAY_THREAD - 522)) | (1L << (RELOAD - 522)) | (1L << (REMOVE - 522)) | (1L << (REORGANIZE - 522)) | (1L << (REPAIR - 522)) | (1L << (REPEAT - 522)) | (1L << (REPEATABLE - 522)) | (1L << (REPLACE - 522)) | (1L << (REPLICATE_DO_DB - 522)) | (1L << (REPLICATE_DO_TABLE - 522)) | (1L << (REPLICATE_IGNORE_DB - 522)) | (1L << (REPLICATE_IGNORE_TABLE - 522)) | (1L << (REPLICATE_REWRITE_DB - 522)) | (1L << (REPLICATE_WILD_DO_TABLE - 522)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 522)) | (1L << (REPLICATION - 522)))) != 0) || ((((_la - 586)) & ~0x3f) == 0 && ((1L << (_la - 586)) & ((1L << (REQUIRE_ROW_FORMAT - 586)) | (1L << (RESET - 586)) | (1L << (RESOURCE - 586)) | (1L << (RESPECT - 586)) | (1L << (RESTART - 586)) | (1L << (RESTORE - 586)) | (1L << (RESUME - 586)) | (1L << (RETAIN - 586)) | (1L << (RETURNED_SQLSTATE - 586)) | (1L << (RETURNING - 586)) | (1L << (RETURNS - 586)) | (1L << (REUSE - 586)) | (1L << (REVERSE - 586)) | (1L << (RIGHT - 586)) | (1L << (ROLE - 586)) | (1L << (ROLLBACK - 586)) | (1L << (ROLLUP - 586)) | (1L << (ROTATE - 586)) | (1L << (ROUTINE - 586)) | (1L << (ROW - 586)) | (1L << (ROW_COUNT - 586)) | (1L << (ROW_FORMAT - 586)) | (1L << (ROW_NUMBER - 586)) | (1L << (RTREE - 586)) | (1L << (SAVEPOINT - 586)) | (1L << (SCHEDULE - 586)) | (1L << (SCHEMA - 586)) | (1L << (SCHEMA_NAME - 586)) | (1L << (SECOND - 586)) | (1L << (SECONDARY - 586)) | (1L << (SECONDARY_ENGINE - 586)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 586)) | (1L << (SECONDARY_LOAD - 586)) | (1L << (SECONDARY_UNLOAD - 586)) | (1L << (SECURITY - 586)) | (1L << (SERIAL - 586)) | (1L << (SERIALIZABLE - 586)) | (1L << (SERVER - 586)) | (1L << (SESSION - 586)) | (1L << (SHARE - 586)) | (1L << (SHUTDOWN - 586)) | (1L << (SIGNED - 586)) | (1L << (SIMPLE - 586)) | (1L << (SLAVE - 586)) | (1L << (SLOW - 586)))) != 0) || ((((_la - 650)) & ~0x3f) == 0 && ((1L << (_la - 650)) & ((1L << (SNAPSHOT - 650)) | (1L << (SOCKET - 650)) | (1L << (SONAME - 650)) | (1L << (SOUNDS - 650)) | (1L << (SOURCE - 650)) | (1L << (SQL_AFTER_GTIDS - 650)) | (1L << (SQL_AFTER_MTS_GAPS - 650)) | (1L << (SQL_BEFORE_GTIDS - 650)) | (1L << (SQL_BUFFER_RESULT - 650)) | (1L << (SQL_NO_CACHE - 650)) | (1L << (SQL_THREAD - 650)) | (1L << (SRID - 650)) | (1L << (STACKED - 650)) | (1L << (START - 650)) | (1L << (STARTS - 650)) | (1L << (STATS_AUTO_RECALC - 650)) | (1L << (STATS_PERSISTENT - 650)) | (1L << (STATS_SAMPLE_PAGES - 650)) | (1L << (STATUS - 650)) | (1L << (STOP - 650)) | (1L << (STORAGE - 650)) | (1L << (STREAM - 650)) | (1L << (STRING - 650)) | (1L << (SUBCLASS_ORIGIN - 650)) | (1L << (SUBJECT - 650)) | (1L << (SUBPARTITION - 650)) | (1L << (SUBPARTITIONS - 650)) | (1L << (SUPER - 650)) | (1L << (SUSPEND - 650)) | (1L << (SWAPS - 650)) | (1L << (SWITCHES - 650)) | (1L << (SYSTEM - 650)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUE - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VALUES - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (JSON_ARRAY - 787)) | (1L << (JSON_ARRAY_APPEND - 787)) | (1L << (JSON_ARRAY_INSERT - 787)) | (1L << (JSON_CONTAINS - 787)) | (1L << (JSON_CONTAINS_PATH - 787)) | (1L << (JSON_DEPTH - 787)) | (1L << (JSON_EXTRACT - 787)) | (1L << (JSON_INSERT - 787)) | (1L << (JSON_KEYS - 787)) | (1L << (JSON_LENGTH - 787)) | (1L << (JSON_MERGE - 787)) | (1L << (JSON_MERGE_PATCH - 787)) | (1L << (JSON_MERGE_PRESERVE - 787)) | (1L << (JSON_OBJECT - 787)) | (1L << (JSON_OVERLAPS - 787)) | (1L << (JSON_PRETTY - 787)) | (1L << (JSON_QUOTE - 787)) | (1L << (JSON_REMOVE - 787)) | (1L << (JSON_REPLACE - 787)) | (1L << (JSON_SCHEMA_VALID - 787)) | (1L << (JSON_SCHEMA_VALIDATION_REPORT - 787)) | (1L << (JSON_SEARCH - 787)) | (1L << (JSON_SET - 787)) | (1L << (JSON_STORAGE_FREE - 787)) | (1L << (JSON_STORAGE_SIZE - 787)) | (1L << (JSON_TYPE - 787)) | (1L << (JSON_UNQUOTE - 787)) | (1L << (JSON_VALID - 787)) | (1L << (SINGLE_QUOTED_TEXT - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (NCHAR_TEXT - 787)) | (1L << (UNDERSCORE_CHARSET - 787)) | (1L << (NUMBER_ - 787)))) != 0) || ((((_la - 851)) & ~0x3f) == 0 && ((1L << (_la - 851)) & ((1L << (HEX_DIGIT_ - 851)) | (1L << (BIT_NUM_ - 851)) | (1L << (IDENTIFIER_ - 851)) | (1L << (IP_ADDRESS - 851)))) != 0)) {
25453 				{
25454 				setState(2454);
25455 				simpleExpr(0);
25456 				}
25457 			}
25458 
25459 			setState(2458); 
25460 			_errHandler.sync(this);
25461 			_la = _input.LA(1);
25462 			do {
25463 				{
25464 				{
25465 				setState(2457);
25466 				caseWhen();
25467 				}
25468 				}
25469 				setState(2460); 
25470 				_errHandler.sync(this);
25471 				_la = _input.LA(1);
25472 			} while ( _la==WHEN );
25473 			setState(2463);
25474 			_errHandler.sync(this);
25475 			_la = _input.LA(1);
25476 			if (_la==ELSE) {
25477 				{
25478 				setState(2462);
25479 				caseElse();
25480 				}
25481 			}
25482 
25483 			setState(2465);
25484 			match(END);
25485 			}
25486 		}
25487 		catch (RecognitionException re) {
25488 			_localctx.exception = re;
25489 			_errHandler.reportError(this, re);
25490 			_errHandler.recover(this, re);
25491 		}
25492 		finally {
25493 			exitRule();
25494 		}
25495 		return _localctx;
25496 	}
25497 
25498 	public static class DatetimeExprContext extends ParserRuleContext {
25499 		public ExprContext expr() {
25500 			return getRuleContext(ExprContext.class,0);
25501 		}
25502 		public DatetimeExprContext(ParserRuleContext parent, int invokingState) {
25503 			super(parent, invokingState);
25504 		}
25505 		@Override public int getRuleIndex() { return RULE_datetimeExpr; }
25506 		@Override
25507 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25508 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDatetimeExpr(this);
25509 			else return visitor.visitChildren(this);
25510 		}
25511 	}
25512 
25513 	public final DatetimeExprContext datetimeExpr() throws RecognitionException {
25514 		DatetimeExprContext _localctx = new DatetimeExprContext(_ctx, getState());
25515 		enterRule(_localctx, 418, RULE_datetimeExpr);
25516 		try {
25517 			enterOuterAlt(_localctx, 1);
25518 			{
25519 			setState(2467);
25520 			expr(0);
25521 			}
25522 		}
25523 		catch (RecognitionException re) {
25524 			_localctx.exception = re;
25525 			_errHandler.reportError(this, re);
25526 			_errHandler.recover(this, re);
25527 		}
25528 		finally {
25529 			exitRule();
25530 		}
25531 		return _localctx;
25532 	}
25533 
25534 	public static class BinaryLogFileIndexNumberContext extends ParserRuleContext {
25535 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
25536 		public BinaryLogFileIndexNumberContext(ParserRuleContext parent, int invokingState) {
25537 			super(parent, invokingState);
25538 		}
25539 		@Override public int getRuleIndex() { return RULE_binaryLogFileIndexNumber; }
25540 		@Override
25541 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25542 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitBinaryLogFileIndexNumber(this);
25543 			else return visitor.visitChildren(this);
25544 		}
25545 	}
25546 
25547 	public final BinaryLogFileIndexNumberContext binaryLogFileIndexNumber() throws RecognitionException {
25548 		BinaryLogFileIndexNumberContext _localctx = new BinaryLogFileIndexNumberContext(_ctx, getState());
25549 		enterRule(_localctx, 420, RULE_binaryLogFileIndexNumber);
25550 		try {
25551 			enterOuterAlt(_localctx, 1);
25552 			{
25553 			setState(2469);
25554 			match(NUMBER_);
25555 			}
25556 		}
25557 		catch (RecognitionException re) {
25558 			_localctx.exception = re;
25559 			_errHandler.reportError(this, re);
25560 			_errHandler.recover(this, re);
25561 		}
25562 		finally {
25563 			exitRule();
25564 		}
25565 		return _localctx;
25566 	}
25567 
25568 	public static class CaseWhenContext extends ParserRuleContext {
25569 		public TerminalNode WHEN() { return getToken(HiveStatementParser.WHEN, 0); }
25570 		public List<ExprContext> expr() {
25571 			return getRuleContexts(ExprContext.class);
25572 		}
25573 		public ExprContext expr(int i) {
25574 			return getRuleContext(ExprContext.class,i);
25575 		}
25576 		public TerminalNode THEN() { return getToken(HiveStatementParser.THEN, 0); }
25577 		public CaseWhenContext(ParserRuleContext parent, int invokingState) {
25578 			super(parent, invokingState);
25579 		}
25580 		@Override public int getRuleIndex() { return RULE_caseWhen; }
25581 		@Override
25582 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25583 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCaseWhen(this);
25584 			else return visitor.visitChildren(this);
25585 		}
25586 	}
25587 
25588 	public final CaseWhenContext caseWhen() throws RecognitionException {
25589 		CaseWhenContext _localctx = new CaseWhenContext(_ctx, getState());
25590 		enterRule(_localctx, 422, RULE_caseWhen);
25591 		try {
25592 			enterOuterAlt(_localctx, 1);
25593 			{
25594 			setState(2471);
25595 			match(WHEN);
25596 			setState(2472);
25597 			expr(0);
25598 			setState(2473);
25599 			match(THEN);
25600 			setState(2474);
25601 			expr(0);
25602 			}
25603 		}
25604 		catch (RecognitionException re) {
25605 			_localctx.exception = re;
25606 			_errHandler.reportError(this, re);
25607 			_errHandler.recover(this, re);
25608 		}
25609 		finally {
25610 			exitRule();
25611 		}
25612 		return _localctx;
25613 	}
25614 
25615 	public static class CaseElseContext extends ParserRuleContext {
25616 		public TerminalNode ELSE() { return getToken(HiveStatementParser.ELSE, 0); }
25617 		public ExprContext expr() {
25618 			return getRuleContext(ExprContext.class,0);
25619 		}
25620 		public CaseElseContext(ParserRuleContext parent, int invokingState) {
25621 			super(parent, invokingState);
25622 		}
25623 		@Override public int getRuleIndex() { return RULE_caseElse; }
25624 		@Override
25625 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25626 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCaseElse(this);
25627 			else return visitor.visitChildren(this);
25628 		}
25629 	}
25630 
25631 	public final CaseElseContext caseElse() throws RecognitionException {
25632 		CaseElseContext _localctx = new CaseElseContext(_ctx, getState());
25633 		enterRule(_localctx, 424, RULE_caseElse);
25634 		try {
25635 			enterOuterAlt(_localctx, 1);
25636 			{
25637 			setState(2476);
25638 			match(ELSE);
25639 			setState(2477);
25640 			expr(0);
25641 			}
25642 		}
25643 		catch (RecognitionException re) {
25644 			_localctx.exception = re;
25645 			_errHandler.reportError(this, re);
25646 			_errHandler.recover(this, re);
25647 		}
25648 		finally {
25649 			exitRule();
25650 		}
25651 		return _localctx;
25652 	}
25653 
25654 	public static class IntervalExpressionContext extends ParserRuleContext {
25655 		public TerminalNode INTERVAL() { return getToken(HiveStatementParser.INTERVAL, 0); }
25656 		public IntervalValueContext intervalValue() {
25657 			return getRuleContext(IntervalValueContext.class,0);
25658 		}
25659 		public IntervalExpressionContext(ParserRuleContext parent, int invokingState) {
25660 			super(parent, invokingState);
25661 		}
25662 		@Override public int getRuleIndex() { return RULE_intervalExpression; }
25663 		@Override
25664 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25665 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIntervalExpression(this);
25666 			else return visitor.visitChildren(this);
25667 		}
25668 	}
25669 
25670 	public final IntervalExpressionContext intervalExpression() throws RecognitionException {
25671 		IntervalExpressionContext _localctx = new IntervalExpressionContext(_ctx, getState());
25672 		enterRule(_localctx, 426, RULE_intervalExpression);
25673 		try {
25674 			enterOuterAlt(_localctx, 1);
25675 			{
25676 			setState(2479);
25677 			match(INTERVAL);
25678 			setState(2480);
25679 			intervalValue();
25680 			}
25681 		}
25682 		catch (RecognitionException re) {
25683 			_localctx.exception = re;
25684 			_errHandler.reportError(this, re);
25685 			_errHandler.recover(this, re);
25686 		}
25687 		finally {
25688 			exitRule();
25689 		}
25690 		return _localctx;
25691 	}
25692 
25693 	public static class IntervalValueContext extends ParserRuleContext {
25694 		public ExprContext expr() {
25695 			return getRuleContext(ExprContext.class,0);
25696 		}
25697 		public IntervalUnitContext intervalUnit() {
25698 			return getRuleContext(IntervalUnitContext.class,0);
25699 		}
25700 		public IntervalValueContext(ParserRuleContext parent, int invokingState) {
25701 			super(parent, invokingState);
25702 		}
25703 		@Override public int getRuleIndex() { return RULE_intervalValue; }
25704 		@Override
25705 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25706 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIntervalValue(this);
25707 			else return visitor.visitChildren(this);
25708 		}
25709 	}
25710 
25711 	public final IntervalValueContext intervalValue() throws RecognitionException {
25712 		IntervalValueContext _localctx = new IntervalValueContext(_ctx, getState());
25713 		enterRule(_localctx, 428, RULE_intervalValue);
25714 		try {
25715 			enterOuterAlt(_localctx, 1);
25716 			{
25717 			setState(2482);
25718 			expr(0);
25719 			setState(2483);
25720 			intervalUnit();
25721 			}
25722 		}
25723 		catch (RecognitionException re) {
25724 			_localctx.exception = re;
25725 			_errHandler.reportError(this, re);
25726 			_errHandler.recover(this, re);
25727 		}
25728 		finally {
25729 			exitRule();
25730 		}
25731 		return _localctx;
25732 	}
25733 
25734 	public static class IntervalUnitContext extends ParserRuleContext {
25735 		public TerminalNode MICROSECOND() { return getToken(HiveStatementParser.MICROSECOND, 0); }
25736 		public TerminalNode SECOND() { return getToken(HiveStatementParser.SECOND, 0); }
25737 		public TerminalNode MINUTE() { return getToken(HiveStatementParser.MINUTE, 0); }
25738 		public TerminalNode HOUR() { return getToken(HiveStatementParser.HOUR, 0); }
25739 		public TerminalNode DAY() { return getToken(HiveStatementParser.DAY, 0); }
25740 		public TerminalNode WEEK() { return getToken(HiveStatementParser.WEEK, 0); }
25741 		public TerminalNode MONTH() { return getToken(HiveStatementParser.MONTH, 0); }
25742 		public TerminalNode QUARTER() { return getToken(HiveStatementParser.QUARTER, 0); }
25743 		public TerminalNode YEAR() { return getToken(HiveStatementParser.YEAR, 0); }
25744 		public TerminalNode SECOND_MICROSECOND() { return getToken(HiveStatementParser.SECOND_MICROSECOND, 0); }
25745 		public TerminalNode MINUTE_MICROSECOND() { return getToken(HiveStatementParser.MINUTE_MICROSECOND, 0); }
25746 		public TerminalNode MINUTE_SECOND() { return getToken(HiveStatementParser.MINUTE_SECOND, 0); }
25747 		public TerminalNode HOUR_MICROSECOND() { return getToken(HiveStatementParser.HOUR_MICROSECOND, 0); }
25748 		public TerminalNode HOUR_SECOND() { return getToken(HiveStatementParser.HOUR_SECOND, 0); }
25749 		public TerminalNode HOUR_MINUTE() { return getToken(HiveStatementParser.HOUR_MINUTE, 0); }
25750 		public TerminalNode DAY_MICROSECOND() { return getToken(HiveStatementParser.DAY_MICROSECOND, 0); }
25751 		public TerminalNode DAY_SECOND() { return getToken(HiveStatementParser.DAY_SECOND, 0); }
25752 		public TerminalNode DAY_MINUTE() { return getToken(HiveStatementParser.DAY_MINUTE, 0); }
25753 		public TerminalNode DAY_HOUR() { return getToken(HiveStatementParser.DAY_HOUR, 0); }
25754 		public TerminalNode YEAR_MONTH() { return getToken(HiveStatementParser.YEAR_MONTH, 0); }
25755 		public IntervalUnitContext(ParserRuleContext parent, int invokingState) {
25756 			super(parent, invokingState);
25757 		}
25758 		@Override public int getRuleIndex() { return RULE_intervalUnit; }
25759 		@Override
25760 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25761 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIntervalUnit(this);
25762 			else return visitor.visitChildren(this);
25763 		}
25764 	}
25765 
25766 	public final IntervalUnitContext intervalUnit() throws RecognitionException {
25767 		IntervalUnitContext _localctx = new IntervalUnitContext(_ctx, getState());
25768 		enterRule(_localctx, 430, RULE_intervalUnit);
25769 		int _la;
25770 		try {
25771 			enterOuterAlt(_localctx, 1);
25772 			{
25773 			setState(2485);
25774 			_la = _input.LA(1);
25775 			if ( !(((((_la - 186)) & ~0x3f) == 0 && ((1L << (_la - 186)) & ((1L << (DAY - 186)) | (1L << (DAY_HOUR - 186)) | (1L << (DAY_MICROSECOND - 186)) | (1L << (DAY_MINUTE - 186)) | (1L << (DAY_SECOND - 186)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (HOUR - 308)) | (1L << (HOUR_MICROSECOND - 308)) | (1L << (HOUR_MINUTE - 308)) | (1L << (HOUR_SECOND - 308)))) != 0) || ((((_la - 435)) & ~0x3f) == 0 && ((1L << (_la - 435)) & ((1L << (MICROSECOND - 435)) | (1L << (MINUTE - 435)) | (1L << (MINUTE_MICROSECOND - 435)) | (1L << (MINUTE_SECOND - 435)) | (1L << (MONTH - 435)))) != 0) || _la==QUARTER || _la==SECOND || _la==SECOND_MICROSECOND || ((((_la - 793)) & ~0x3f) == 0 && ((1L << (_la - 793)) & ((1L << (WEEK - 793)) | (1L << (YEAR - 793)) | (1L << (YEAR_MONTH - 793)))) != 0)) ) {
25776 			_errHandler.recoverInline(this);
25777 			}
25778 			else {
25779 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
25780 				_errHandler.reportMatch(this);
25781 				consume();
25782 			}
25783 			}
25784 		}
25785 		catch (RecognitionException re) {
25786 			_localctx.exception = re;
25787 			_errHandler.reportError(this, re);
25788 			_errHandler.recover(this, re);
25789 		}
25790 		finally {
25791 			exitRule();
25792 		}
25793 		return _localctx;
25794 	}
25795 
25796 	public static class OrderByClauseContext extends ParserRuleContext {
25797 		public TerminalNode ORDER() { return getToken(HiveStatementParser.ORDER, 0); }
25798 		public TerminalNode BY() { return getToken(HiveStatementParser.BY, 0); }
25799 		public List<OrderByItemContext> orderByItem() {
25800 			return getRuleContexts(OrderByItemContext.class);
25801 		}
25802 		public OrderByItemContext orderByItem(int i) {
25803 			return getRuleContext(OrderByItemContext.class,i);
25804 		}
25805 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
25806 		public TerminalNode COMMA_(int i) {
25807 			return getToken(HiveStatementParser.COMMA_, i);
25808 		}
25809 		public OrderByClauseContext(ParserRuleContext parent, int invokingState) {
25810 			super(parent, invokingState);
25811 		}
25812 		@Override public int getRuleIndex() { return RULE_orderByClause; }
25813 		@Override
25814 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25815 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOrderByClause(this);
25816 			else return visitor.visitChildren(this);
25817 		}
25818 	}
25819 
25820 	public final OrderByClauseContext orderByClause() throws RecognitionException {
25821 		OrderByClauseContext _localctx = new OrderByClauseContext(_ctx, getState());
25822 		enterRule(_localctx, 432, RULE_orderByClause);
25823 		int _la;
25824 		try {
25825 			enterOuterAlt(_localctx, 1);
25826 			{
25827 			setState(2487);
25828 			match(ORDER);
25829 			setState(2488);
25830 			match(BY);
25831 			setState(2489);
25832 			orderByItem();
25833 			setState(2494);
25834 			_errHandler.sync(this);
25835 			_la = _input.LA(1);
25836 			while (_la==COMMA_) {
25837 				{
25838 				{
25839 				setState(2490);
25840 				match(COMMA_);
25841 				setState(2491);
25842 				orderByItem();
25843 				}
25844 				}
25845 				setState(2496);
25846 				_errHandler.sync(this);
25847 				_la = _input.LA(1);
25848 			}
25849 			}
25850 		}
25851 		catch (RecognitionException re) {
25852 			_localctx.exception = re;
25853 			_errHandler.reportError(this, re);
25854 			_errHandler.recover(this, re);
25855 		}
25856 		finally {
25857 			exitRule();
25858 		}
25859 		return _localctx;
25860 	}
25861 
25862 	public static class OrderByItemContext extends ParserRuleContext {
25863 		public NumberLiteralsContext numberLiterals() {
25864 			return getRuleContext(NumberLiteralsContext.class,0);
25865 		}
25866 		public ExprContext expr() {
25867 			return getRuleContext(ExprContext.class,0);
25868 		}
25869 		public DirectionContext direction() {
25870 			return getRuleContext(DirectionContext.class,0);
25871 		}
25872 		public OrderByItemContext(ParserRuleContext parent, int invokingState) {
25873 			super(parent, invokingState);
25874 		}
25875 		@Override public int getRuleIndex() { return RULE_orderByItem; }
25876 		@Override
25877 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
25878 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitOrderByItem(this);
25879 			else return visitor.visitChildren(this);
25880 		}
25881 	}
25882 
25883 	public final OrderByItemContext orderByItem() throws RecognitionException {
25884 		OrderByItemContext _localctx = new OrderByItemContext(_ctx, getState());
25885 		enterRule(_localctx, 434, RULE_orderByItem);
25886 		try {
25887 			enterOuterAlt(_localctx, 1);
25888 			{
25889 			setState(2499);
25890 			_errHandler.sync(this);
25891 			switch ( getInterpreter().adaptivePredict(_input,289,_ctx) ) {
25892 			case 1:
25893 				{
25894 				setState(2497);
25895 				numberLiterals();
25896 				}
25897 				break;
25898 			case 2:
25899 				{
25900 				setState(2498);
25901 				expr(0);
25902 				}
25903 				break;
25904 			}
25905 			setState(2502);
25906 			_errHandler.sync(this);
25907 			switch ( getInterpreter().adaptivePredict(_input,290,_ctx) ) {
25908 			case 1:
25909 				{
25910 				setState(2501);
25911 				direction();
25912 				}
25913 				break;
25914 			}
25915 			}
25916 		}
25917 		catch (RecognitionException re) {
25918 			_localctx.exception = re;
25919 			_errHandler.reportError(this, re);
25920 			_errHandler.recover(this, re);
25921 		}
25922 		finally {
25923 			exitRule();
25924 		}
25925 		return _localctx;
25926 	}
25927 
25928 	public static class DataTypeContext extends ParserRuleContext {
25929 		public Token dataTypeName;
25930 		public TerminalNode INTEGER() { return getToken(HiveStatementParser.INTEGER, 0); }
25931 		public TerminalNode INT() { return getToken(HiveStatementParser.INT, 0); }
25932 		public TerminalNode TINYINT() { return getToken(HiveStatementParser.TINYINT, 0); }
25933 		public TerminalNode SMALLINT() { return getToken(HiveStatementParser.SMALLINT, 0); }
25934 		public TerminalNode MIDDLEINT() { return getToken(HiveStatementParser.MIDDLEINT, 0); }
25935 		public TerminalNode MEDIUMINT() { return getToken(HiveStatementParser.MEDIUMINT, 0); }
25936 		public TerminalNode BIGINT() { return getToken(HiveStatementParser.BIGINT, 0); }
25937 		public FieldLengthContext fieldLength() {
25938 			return getRuleContext(FieldLengthContext.class,0);
25939 		}
25940 		public FieldOptionsContext fieldOptions() {
25941 			return getRuleContext(FieldOptionsContext.class,0);
25942 		}
25943 		public TerminalNode REAL() { return getToken(HiveStatementParser.REAL, 0); }
25944 		public TerminalNode DOUBLE() { return getToken(HiveStatementParser.DOUBLE, 0); }
25945 		public PrecisionContext precision() {
25946 			return getRuleContext(PrecisionContext.class,0);
25947 		}
25948 		public TerminalNode PRECISION() { return getToken(HiveStatementParser.PRECISION, 0); }
25949 		public TerminalNode FLOAT() { return getToken(HiveStatementParser.FLOAT, 0); }
25950 		public TerminalNode DECIMAL() { return getToken(HiveStatementParser.DECIMAL, 0); }
25951 		public TerminalNode NUMERIC() { return getToken(HiveStatementParser.NUMERIC, 0); }
25952 		public TerminalNode FIXED() { return getToken(HiveStatementParser.FIXED, 0); }
25953 		public TerminalNode BIT() { return getToken(HiveStatementParser.BIT, 0); }
25954 		public TerminalNode BOOL() { return getToken(HiveStatementParser.BOOL, 0); }
25955 		public TerminalNode BOOLEAN() { return getToken(HiveStatementParser.BOOLEAN, 0); }
25956 		public TerminalNode CHAR() { return getToken(HiveStatementParser.CHAR, 0); }
25957 		public CharsetWithOptBinaryContext charsetWithOptBinary() {
25958 			return getRuleContext(CharsetWithOptBinaryContext.class,0);
25959 		}
25960 		public TerminalNode NCHAR() { return getToken(HiveStatementParser.NCHAR, 0); }
25961 		public TerminalNode NATIONAL_CHAR() { return getToken(HiveStatementParser.NATIONAL_CHAR, 0); }
25962 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
25963 		public TerminalNode SIGNED() { return getToken(HiveStatementParser.SIGNED, 0); }
25964 		public TerminalNode SIGNED_INT() { return getToken(HiveStatementParser.SIGNED_INT, 0); }
25965 		public TerminalNode SIGNED_INTEGER() { return getToken(HiveStatementParser.SIGNED_INTEGER, 0); }
25966 		public TerminalNode CHAR_VARYING() { return getToken(HiveStatementParser.CHAR_VARYING, 0); }
25967 		public TerminalNode CHARACTER_VARYING() { return getToken(HiveStatementParser.CHARACTER_VARYING, 0); }
25968 		public TerminalNode VARCHAR() { return getToken(HiveStatementParser.VARCHAR, 0); }
25969 		public TerminalNode VARYING() { return getToken(HiveStatementParser.VARYING, 0); }
25970 		public TerminalNode NATIONAL() { return getToken(HiveStatementParser.NATIONAL, 0); }
25971 		public TerminalNode NVARCHAR() { return getToken(HiveStatementParser.NVARCHAR, 0); }
25972 		public TerminalNode NATIONAL_CHAR_VARYING() { return getToken(HiveStatementParser.NATIONAL_CHAR_VARYING, 0); }
25973 		public TerminalNode VARBINARY() { return getToken(HiveStatementParser.VARBINARY, 0); }
25974 		public TerminalNode YEAR() { return getToken(HiveStatementParser.YEAR, 0); }
25975 		public TerminalNode DATE() { return getToken(HiveStatementParser.DATE, 0); }
25976 		public TerminalNode TIME() { return getToken(HiveStatementParser.TIME, 0); }
25977 		public TypeDatetimePrecisionContext typeDatetimePrecision() {
25978 			return getRuleContext(TypeDatetimePrecisionContext.class,0);
25979 		}
25980 		public TerminalNode UNSIGNED() { return getToken(HiveStatementParser.UNSIGNED, 0); }
25981 		public TerminalNode UNSIGNED_INT() { return getToken(HiveStatementParser.UNSIGNED_INT, 0); }
25982 		public TerminalNode UNSIGNED_INTEGER() { return getToken(HiveStatementParser.UNSIGNED_INTEGER, 0); }
25983 		public TerminalNode TIMESTAMP() { return getToken(HiveStatementParser.TIMESTAMP, 0); }
25984 		public TerminalNode DATETIME() { return getToken(HiveStatementParser.DATETIME, 0); }
25985 		public TerminalNode TINYBLOB() { return getToken(HiveStatementParser.TINYBLOB, 0); }
25986 		public TerminalNode BLOB() { return getToken(HiveStatementParser.BLOB, 0); }
25987 		public TerminalNode MEDIUMBLOB() { return getToken(HiveStatementParser.MEDIUMBLOB, 0); }
25988 		public TerminalNode LONGBLOB() { return getToken(HiveStatementParser.LONGBLOB, 0); }
25989 		public TerminalNode LONG() { return getToken(HiveStatementParser.LONG, 0); }
25990 		public TerminalNode LONG_CHAR_VARYING() { return getToken(HiveStatementParser.LONG_CHAR_VARYING, 0); }
25991 		public TerminalNode LONG_VARCHAR() { return getToken(HiveStatementParser.LONG_VARCHAR, 0); }
25992 		public TerminalNode TINYTEXT() { return getToken(HiveStatementParser.TINYTEXT, 0); }
25993 		public TerminalNode TEXT() { return getToken(HiveStatementParser.TEXT, 0); }
25994 		public TerminalNode MEDIUMTEXT() { return getToken(HiveStatementParser.MEDIUMTEXT, 0); }
25995 		public TerminalNode LONGTEXT() { return getToken(HiveStatementParser.LONGTEXT, 0); }
25996 		public StringListContext stringList() {
25997 			return getRuleContext(StringListContext.class,0);
25998 		}
25999 		public TerminalNode ENUM() { return getToken(HiveStatementParser.ENUM, 0); }
26000 		public TerminalNode SET() { return getToken(HiveStatementParser.SET, 0); }
26001 		public TerminalNode SERIAL() { return getToken(HiveStatementParser.SERIAL, 0); }
26002 		public TerminalNode JSON() { return getToken(HiveStatementParser.JSON, 0); }
26003 		public TerminalNode GEOMETRY() { return getToken(HiveStatementParser.GEOMETRY, 0); }
26004 		public TerminalNode GEOMCOLLECTION() { return getToken(HiveStatementParser.GEOMCOLLECTION, 0); }
26005 		public TerminalNode GEOMETRYCOLLECTION() { return getToken(HiveStatementParser.GEOMETRYCOLLECTION, 0); }
26006 		public TerminalNode POINT() { return getToken(HiveStatementParser.POINT, 0); }
26007 		public TerminalNode MULTIPOINT() { return getToken(HiveStatementParser.MULTIPOINT, 0); }
26008 		public TerminalNode LINESTRING() { return getToken(HiveStatementParser.LINESTRING, 0); }
26009 		public TerminalNode MULTILINESTRING() { return getToken(HiveStatementParser.MULTILINESTRING, 0); }
26010 		public TerminalNode POLYGON() { return getToken(HiveStatementParser.POLYGON, 0); }
26011 		public TerminalNode MULTIPOLYGON() { return getToken(HiveStatementParser.MULTIPOLYGON, 0); }
26012 		public DataTypeContext(ParserRuleContext parent, int invokingState) {
26013 			super(parent, invokingState);
26014 		}
26015 		@Override public int getRuleIndex() { return RULE_dataType; }
26016 		@Override
26017 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
26018 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDataType(this);
26019 			else return visitor.visitChildren(this);
26020 		}
26021 	}
26022 
26023 	public final DataTypeContext dataType() throws RecognitionException {
26024 		DataTypeContext _localctx = new DataTypeContext(_ctx, getState());
26025 		enterRule(_localctx, 436, RULE_dataType);
26026 		int _la;
26027 		try {
26028 			setState(2651);
26029 			_errHandler.sync(this);
26030 			switch ( getInterpreter().adaptivePredict(_input,326,_ctx) ) {
26031 			case 1:
26032 				enterOuterAlt(_localctx, 1);
26033 				{
26034 				setState(2504);
26035 				((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26036 				_la = _input.LA(1);
26037 				if ( !(_la==BIGINT || _la==INT || _la==INTEGER || _la==MEDIUMINT || _la==MIDDLEINT || _la==SMALLINT || _la==TINYINT) ) {
26038 					((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26039 				}
26040 				else {
26041 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26042 					_errHandler.reportMatch(this);
26043 					consume();
26044 				}
26045 				setState(2506);
26046 				_errHandler.sync(this);
26047 				switch ( getInterpreter().adaptivePredict(_input,291,_ctx) ) {
26048 				case 1:
26049 					{
26050 					setState(2505);
26051 					fieldLength();
26052 					}
26053 					break;
26054 				}
26055 				setState(2509);
26056 				_errHandler.sync(this);
26057 				switch ( getInterpreter().adaptivePredict(_input,292,_ctx) ) {
26058 				case 1:
26059 					{
26060 					setState(2508);
26061 					fieldOptions();
26062 					}
26063 					break;
26064 				}
26065 				}
26066 				break;
26067 			case 2:
26068 				enterOuterAlt(_localctx, 2);
26069 				{
26070 				setState(2516);
26071 				_errHandler.sync(this);
26072 				switch (_input.LA(1)) {
26073 				case REAL:
26074 					{
26075 					setState(2511);
26076 					((DataTypeContext)_localctx).dataTypeName = match(REAL);
26077 					}
26078 					break;
26079 				case DOUBLE:
26080 					{
26081 					setState(2512);
26082 					((DataTypeContext)_localctx).dataTypeName = match(DOUBLE);
26083 					setState(2514);
26084 					_errHandler.sync(this);
26085 					switch ( getInterpreter().adaptivePredict(_input,293,_ctx) ) {
26086 					case 1:
26087 						{
26088 						setState(2513);
26089 						match(PRECISION);
26090 						}
26091 						break;
26092 					}
26093 					}
26094 					break;
26095 				default:
26096 					throw new NoViableAltException(this);
26097 				}
26098 				setState(2519);
26099 				_errHandler.sync(this);
26100 				switch ( getInterpreter().adaptivePredict(_input,295,_ctx) ) {
26101 				case 1:
26102 					{
26103 					setState(2518);
26104 					precision();
26105 					}
26106 					break;
26107 				}
26108 				setState(2522);
26109 				_errHandler.sync(this);
26110 				switch ( getInterpreter().adaptivePredict(_input,296,_ctx) ) {
26111 				case 1:
26112 					{
26113 					setState(2521);
26114 					fieldOptions();
26115 					}
26116 					break;
26117 				}
26118 				}
26119 				break;
26120 			case 3:
26121 				enterOuterAlt(_localctx, 3);
26122 				{
26123 				setState(2524);
26124 				((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26125 				_la = _input.LA(1);
26126 				if ( !(_la==DECIMAL || _la==FIXED || _la==FLOAT || _la==NUMERIC) ) {
26127 					((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26128 				}
26129 				else {
26130 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26131 					_errHandler.reportMatch(this);
26132 					consume();
26133 				}
26134 				setState(2527);
26135 				_errHandler.sync(this);
26136 				switch ( getInterpreter().adaptivePredict(_input,297,_ctx) ) {
26137 				case 1:
26138 					{
26139 					setState(2525);
26140 					fieldLength();
26141 					}
26142 					break;
26143 				case 2:
26144 					{
26145 					setState(2526);
26146 					precision();
26147 					}
26148 					break;
26149 				}
26150 				setState(2530);
26151 				_errHandler.sync(this);
26152 				switch ( getInterpreter().adaptivePredict(_input,298,_ctx) ) {
26153 				case 1:
26154 					{
26155 					setState(2529);
26156 					fieldOptions();
26157 					}
26158 					break;
26159 				}
26160 				}
26161 				break;
26162 			case 4:
26163 				enterOuterAlt(_localctx, 4);
26164 				{
26165 				setState(2532);
26166 				((DataTypeContext)_localctx).dataTypeName = match(BIT);
26167 				setState(2534);
26168 				_errHandler.sync(this);
26169 				switch ( getInterpreter().adaptivePredict(_input,299,_ctx) ) {
26170 				case 1:
26171 					{
26172 					setState(2533);
26173 					fieldLength();
26174 					}
26175 					break;
26176 				}
26177 				}
26178 				break;
26179 			case 5:
26180 				enterOuterAlt(_localctx, 5);
26181 				{
26182 				setState(2536);
26183 				((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26184 				_la = _input.LA(1);
26185 				if ( !(_la==BOOL || _la==BOOLEAN) ) {
26186 					((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26187 				}
26188 				else {
26189 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26190 					_errHandler.reportMatch(this);
26191 					consume();
26192 				}
26193 				}
26194 				break;
26195 			case 6:
26196 				enterOuterAlt(_localctx, 6);
26197 				{
26198 				setState(2537);
26199 				((DataTypeContext)_localctx).dataTypeName = match(CHAR);
26200 				setState(2539);
26201 				_errHandler.sync(this);
26202 				switch ( getInterpreter().adaptivePredict(_input,300,_ctx) ) {
26203 				case 1:
26204 					{
26205 					setState(2538);
26206 					fieldLength();
26207 					}
26208 					break;
26209 				}
26210 				setState(2542);
26211 				_errHandler.sync(this);
26212 				switch ( getInterpreter().adaptivePredict(_input,301,_ctx) ) {
26213 				case 1:
26214 					{
26215 					setState(2541);
26216 					charsetWithOptBinary();
26217 					}
26218 					break;
26219 				}
26220 				}
26221 				break;
26222 			case 7:
26223 				enterOuterAlt(_localctx, 7);
26224 				{
26225 				setState(2546);
26226 				_errHandler.sync(this);
26227 				switch (_input.LA(1)) {
26228 				case NCHAR:
26229 					{
26230 					setState(2544);
26231 					((DataTypeContext)_localctx).dataTypeName = match(NCHAR);
26232 					}
26233 					break;
26234 				case NATIONAL_CHAR:
26235 					{
26236 					setState(2545);
26237 					((DataTypeContext)_localctx).dataTypeName = match(NATIONAL_CHAR);
26238 					}
26239 					break;
26240 				default:
26241 					throw new NoViableAltException(this);
26242 				}
26243 				setState(2549);
26244 				_errHandler.sync(this);
26245 				switch ( getInterpreter().adaptivePredict(_input,303,_ctx) ) {
26246 				case 1:
26247 					{
26248 					setState(2548);
26249 					fieldLength();
26250 					}
26251 					break;
26252 				}
26253 				setState(2552);
26254 				_errHandler.sync(this);
26255 				switch ( getInterpreter().adaptivePredict(_input,304,_ctx) ) {
26256 				case 1:
26257 					{
26258 					setState(2551);
26259 					match(BINARY);
26260 					}
26261 					break;
26262 				}
26263 				}
26264 				break;
26265 			case 8:
26266 				enterOuterAlt(_localctx, 8);
26267 				{
26268 				setState(2554);
26269 				((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26270 				_la = _input.LA(1);
26271 				if ( !(((((_la - 642)) & ~0x3f) == 0 && ((1L << (_la - 642)) & ((1L << (SIGNED - 642)) | (1L << (SIGNED_INT - 642)) | (1L << (SIGNED_INTEGER - 642)))) != 0)) ) {
26272 					((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26273 				}
26274 				else {
26275 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26276 					_errHandler.reportMatch(this);
26277 					consume();
26278 				}
26279 				}
26280 				break;
26281 			case 9:
26282 				enterOuterAlt(_localctx, 9);
26283 				{
26284 				setState(2555);
26285 				((DataTypeContext)_localctx).dataTypeName = match(BINARY);
26286 				setState(2557);
26287 				_errHandler.sync(this);
26288 				switch ( getInterpreter().adaptivePredict(_input,305,_ctx) ) {
26289 				case 1:
26290 					{
26291 					setState(2556);
26292 					fieldLength();
26293 					}
26294 					break;
26295 				}
26296 				}
26297 				break;
26298 			case 10:
26299 				enterOuterAlt(_localctx, 10);
26300 				{
26301 				setState(2562);
26302 				_errHandler.sync(this);
26303 				switch (_input.LA(1)) {
26304 				case CHAR_VARYING:
26305 					{
26306 					setState(2559);
26307 					((DataTypeContext)_localctx).dataTypeName = match(CHAR_VARYING);
26308 					}
26309 					break;
26310 				case CHARACTER_VARYING:
26311 					{
26312 					setState(2560);
26313 					((DataTypeContext)_localctx).dataTypeName = match(CHARACTER_VARYING);
26314 					}
26315 					break;
26316 				case VARCHAR:
26317 					{
26318 					setState(2561);
26319 					((DataTypeContext)_localctx).dataTypeName = match(VARCHAR);
26320 					}
26321 					break;
26322 				default:
26323 					throw new NoViableAltException(this);
26324 				}
26325 				setState(2564);
26326 				fieldLength();
26327 				setState(2566);
26328 				_errHandler.sync(this);
26329 				switch ( getInterpreter().adaptivePredict(_input,307,_ctx) ) {
26330 				case 1:
26331 					{
26332 					setState(2565);
26333 					charsetWithOptBinary();
26334 					}
26335 					break;
26336 				}
26337 				}
26338 				break;
26339 			case 11:
26340 				enterOuterAlt(_localctx, 11);
26341 				{
26342 				setState(2576);
26343 				_errHandler.sync(this);
26344 				switch ( getInterpreter().adaptivePredict(_input,308,_ctx) ) {
26345 				case 1:
26346 					{
26347 					setState(2568);
26348 					((DataTypeContext)_localctx).dataTypeName = match(NATIONAL);
26349 					setState(2569);
26350 					match(VARCHAR);
26351 					}
26352 					break;
26353 				case 2:
26354 					{
26355 					setState(2570);
26356 					((DataTypeContext)_localctx).dataTypeName = match(NVARCHAR);
26357 					}
26358 					break;
26359 				case 3:
26360 					{
26361 					setState(2571);
26362 					((DataTypeContext)_localctx).dataTypeName = match(NCHAR);
26363 					setState(2572);
26364 					match(VARCHAR);
26365 					}
26366 					break;
26367 				case 4:
26368 					{
26369 					setState(2573);
26370 					((DataTypeContext)_localctx).dataTypeName = match(NATIONAL_CHAR_VARYING);
26371 					}
26372 					break;
26373 				case 5:
26374 					{
26375 					setState(2574);
26376 					((DataTypeContext)_localctx).dataTypeName = match(NCHAR);
26377 					setState(2575);
26378 					match(VARYING);
26379 					}
26380 					break;
26381 				}
26382 				setState(2578);
26383 				fieldLength();
26384 				setState(2580);
26385 				_errHandler.sync(this);
26386 				switch ( getInterpreter().adaptivePredict(_input,309,_ctx) ) {
26387 				case 1:
26388 					{
26389 					setState(2579);
26390 					match(BINARY);
26391 					}
26392 					break;
26393 				}
26394 				}
26395 				break;
26396 			case 12:
26397 				enterOuterAlt(_localctx, 12);
26398 				{
26399 				setState(2582);
26400 				((DataTypeContext)_localctx).dataTypeName = match(VARBINARY);
26401 				setState(2584);
26402 				_errHandler.sync(this);
26403 				switch ( getInterpreter().adaptivePredict(_input,310,_ctx) ) {
26404 				case 1:
26405 					{
26406 					setState(2583);
26407 					fieldLength();
26408 					}
26409 					break;
26410 				}
26411 				}
26412 				break;
26413 			case 13:
26414 				enterOuterAlt(_localctx, 13);
26415 				{
26416 				setState(2586);
26417 				((DataTypeContext)_localctx).dataTypeName = match(YEAR);
26418 				setState(2588);
26419 				_errHandler.sync(this);
26420 				switch ( getInterpreter().adaptivePredict(_input,311,_ctx) ) {
26421 				case 1:
26422 					{
26423 					setState(2587);
26424 					fieldLength();
26425 					}
26426 					break;
26427 				}
26428 				setState(2591);
26429 				_errHandler.sync(this);
26430 				switch ( getInterpreter().adaptivePredict(_input,312,_ctx) ) {
26431 				case 1:
26432 					{
26433 					setState(2590);
26434 					fieldOptions();
26435 					}
26436 					break;
26437 				}
26438 				}
26439 				break;
26440 			case 14:
26441 				enterOuterAlt(_localctx, 14);
26442 				{
26443 				setState(2593);
26444 				((DataTypeContext)_localctx).dataTypeName = match(DATE);
26445 				}
26446 				break;
26447 			case 15:
26448 				enterOuterAlt(_localctx, 15);
26449 				{
26450 				setState(2594);
26451 				((DataTypeContext)_localctx).dataTypeName = match(TIME);
26452 				setState(2596);
26453 				_errHandler.sync(this);
26454 				switch ( getInterpreter().adaptivePredict(_input,313,_ctx) ) {
26455 				case 1:
26456 					{
26457 					setState(2595);
26458 					typeDatetimePrecision();
26459 					}
26460 					break;
26461 				}
26462 				}
26463 				break;
26464 			case 16:
26465 				enterOuterAlt(_localctx, 16);
26466 				{
26467 				setState(2598);
26468 				((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26469 				_la = _input.LA(1);
26470 				if ( !(((((_la - 764)) & ~0x3f) == 0 && ((1L << (_la - 764)) & ((1L << (UNSIGNED - 764)) | (1L << (UNSIGNED_INT - 764)) | (1L << (UNSIGNED_INTEGER - 764)))) != 0)) ) {
26471 					((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26472 				}
26473 				else {
26474 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26475 					_errHandler.reportMatch(this);
26476 					consume();
26477 				}
26478 				}
26479 				break;
26480 			case 17:
26481 				enterOuterAlt(_localctx, 17);
26482 				{
26483 				setState(2599);
26484 				((DataTypeContext)_localctx).dataTypeName = match(TIMESTAMP);
26485 				setState(2601);
26486 				_errHandler.sync(this);
26487 				switch ( getInterpreter().adaptivePredict(_input,314,_ctx) ) {
26488 				case 1:
26489 					{
26490 					setState(2600);
26491 					typeDatetimePrecision();
26492 					}
26493 					break;
26494 				}
26495 				}
26496 				break;
26497 			case 18:
26498 				enterOuterAlt(_localctx, 18);
26499 				{
26500 				setState(2603);
26501 				((DataTypeContext)_localctx).dataTypeName = match(DATETIME);
26502 				setState(2605);
26503 				_errHandler.sync(this);
26504 				switch ( getInterpreter().adaptivePredict(_input,315,_ctx) ) {
26505 				case 1:
26506 					{
26507 					setState(2604);
26508 					typeDatetimePrecision();
26509 					}
26510 					break;
26511 				}
26512 				}
26513 				break;
26514 			case 19:
26515 				enterOuterAlt(_localctx, 19);
26516 				{
26517 				setState(2607);
26518 				((DataTypeContext)_localctx).dataTypeName = match(TINYBLOB);
26519 				}
26520 				break;
26521 			case 20:
26522 				enterOuterAlt(_localctx, 20);
26523 				{
26524 				setState(2608);
26525 				((DataTypeContext)_localctx).dataTypeName = match(BLOB);
26526 				setState(2610);
26527 				_errHandler.sync(this);
26528 				switch ( getInterpreter().adaptivePredict(_input,316,_ctx) ) {
26529 				case 1:
26530 					{
26531 					setState(2609);
26532 					fieldLength();
26533 					}
26534 					break;
26535 				}
26536 				}
26537 				break;
26538 			case 21:
26539 				enterOuterAlt(_localctx, 21);
26540 				{
26541 				setState(2612);
26542 				((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26543 				_la = _input.LA(1);
26544 				if ( !(_la==LONGBLOB || _la==MEDIUMBLOB) ) {
26545 					((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26546 				}
26547 				else {
26548 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26549 					_errHandler.reportMatch(this);
26550 					consume();
26551 				}
26552 				}
26553 				break;
26554 			case 22:
26555 				enterOuterAlt(_localctx, 22);
26556 				{
26557 				setState(2613);
26558 				((DataTypeContext)_localctx).dataTypeName = match(LONG);
26559 				setState(2614);
26560 				match(VARBINARY);
26561 				}
26562 				break;
26563 			case 23:
26564 				enterOuterAlt(_localctx, 23);
26565 				{
26566 				setState(2616);
26567 				_errHandler.sync(this);
26568 				switch ( getInterpreter().adaptivePredict(_input,317,_ctx) ) {
26569 				case 1:
26570 					{
26571 					setState(2615);
26572 					((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26573 					_la = _input.LA(1);
26574 					if ( !(_la==LONG_CHAR_VARYING || _la==LONG_VARCHAR) ) {
26575 						((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26576 					}
26577 					else {
26578 						if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26579 						_errHandler.reportMatch(this);
26580 						consume();
26581 					}
26582 					}
26583 					break;
26584 				}
26585 				setState(2619);
26586 				_errHandler.sync(this);
26587 				switch ( getInterpreter().adaptivePredict(_input,318,_ctx) ) {
26588 				case 1:
26589 					{
26590 					setState(2618);
26591 					charsetWithOptBinary();
26592 					}
26593 					break;
26594 				}
26595 				}
26596 				break;
26597 			case 24:
26598 				enterOuterAlt(_localctx, 24);
26599 				{
26600 				setState(2621);
26601 				((DataTypeContext)_localctx).dataTypeName = match(TINYTEXT);
26602 				setState(2623);
26603 				_errHandler.sync(this);
26604 				switch ( getInterpreter().adaptivePredict(_input,319,_ctx) ) {
26605 				case 1:
26606 					{
26607 					setState(2622);
26608 					charsetWithOptBinary();
26609 					}
26610 					break;
26611 				}
26612 				}
26613 				break;
26614 			case 25:
26615 				enterOuterAlt(_localctx, 25);
26616 				{
26617 				setState(2625);
26618 				((DataTypeContext)_localctx).dataTypeName = match(TEXT);
26619 				setState(2627);
26620 				_errHandler.sync(this);
26621 				switch ( getInterpreter().adaptivePredict(_input,320,_ctx) ) {
26622 				case 1:
26623 					{
26624 					setState(2626);
26625 					fieldLength();
26626 					}
26627 					break;
26628 				}
26629 				setState(2630);
26630 				_errHandler.sync(this);
26631 				switch ( getInterpreter().adaptivePredict(_input,321,_ctx) ) {
26632 				case 1:
26633 					{
26634 					setState(2629);
26635 					charsetWithOptBinary();
26636 					}
26637 					break;
26638 				}
26639 				}
26640 				break;
26641 			case 26:
26642 				enterOuterAlt(_localctx, 26);
26643 				{
26644 				setState(2632);
26645 				((DataTypeContext)_localctx).dataTypeName = match(MEDIUMTEXT);
26646 				setState(2634);
26647 				_errHandler.sync(this);
26648 				switch ( getInterpreter().adaptivePredict(_input,322,_ctx) ) {
26649 				case 1:
26650 					{
26651 					setState(2633);
26652 					charsetWithOptBinary();
26653 					}
26654 					break;
26655 				}
26656 				}
26657 				break;
26658 			case 27:
26659 				enterOuterAlt(_localctx, 27);
26660 				{
26661 				setState(2636);
26662 				((DataTypeContext)_localctx).dataTypeName = match(LONGTEXT);
26663 				setState(2638);
26664 				_errHandler.sync(this);
26665 				switch ( getInterpreter().adaptivePredict(_input,323,_ctx) ) {
26666 				case 1:
26667 					{
26668 					setState(2637);
26669 					charsetWithOptBinary();
26670 					}
26671 					break;
26672 				}
26673 				}
26674 				break;
26675 			case 28:
26676 				enterOuterAlt(_localctx, 28);
26677 				{
26678 				setState(2640);
26679 				((DataTypeContext)_localctx).dataTypeName = match(ENUM);
26680 				setState(2641);
26681 				stringList();
26682 				setState(2643);
26683 				_errHandler.sync(this);
26684 				switch ( getInterpreter().adaptivePredict(_input,324,_ctx) ) {
26685 				case 1:
26686 					{
26687 					setState(2642);
26688 					charsetWithOptBinary();
26689 					}
26690 					break;
26691 				}
26692 				}
26693 				break;
26694 			case 29:
26695 				enterOuterAlt(_localctx, 29);
26696 				{
26697 				setState(2645);
26698 				((DataTypeContext)_localctx).dataTypeName = match(SET);
26699 				setState(2646);
26700 				stringList();
26701 				setState(2648);
26702 				_errHandler.sync(this);
26703 				switch ( getInterpreter().adaptivePredict(_input,325,_ctx) ) {
26704 				case 1:
26705 					{
26706 					setState(2647);
26707 					charsetWithOptBinary();
26708 					}
26709 					break;
26710 				}
26711 				}
26712 				break;
26713 			case 30:
26714 				enterOuterAlt(_localctx, 30);
26715 				{
26716 				setState(2650);
26717 				((DataTypeContext)_localctx).dataTypeName = _input.LT(1);
26718 				_la = _input.LA(1);
26719 				if ( !(((((_la - 283)) & ~0x3f) == 0 && ((1L << (_la - 283)) & ((1L << (GEOMETRY - 283)) | (1L << (GEOMCOLLECTION - 283)) | (1L << (GEOMETRYCOLLECTION - 283)))) != 0) || _la==JSON || _la==LINESTRING || ((((_la - 447)) & ~0x3f) == 0 && ((1L << (_la - 447)) & ((1L << (MULTILINESTRING - 447)) | (1L << (MULTIPOINT - 447)) | (1L << (MULTIPOLYGON - 447)))) != 0) || _la==POINT || _la==POLYGON || _la==SERIAL) ) {
26720 					((DataTypeContext)_localctx).dataTypeName = (Token)_errHandler.recoverInline(this);
26721 				}
26722 				else {
26723 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26724 					_errHandler.reportMatch(this);
26725 					consume();
26726 				}
26727 				}
26728 				break;
26729 			}
26730 		}
26731 		catch (RecognitionException re) {
26732 			_localctx.exception = re;
26733 			_errHandler.reportError(this, re);
26734 			_errHandler.recover(this, re);
26735 		}
26736 		finally {
26737 			exitRule();
26738 		}
26739 		return _localctx;
26740 	}
26741 
26742 	public static class StringListContext extends ParserRuleContext {
26743 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
26744 		public List<TextStringContext> textString() {
26745 			return getRuleContexts(TextStringContext.class);
26746 		}
26747 		public TextStringContext textString(int i) {
26748 			return getRuleContext(TextStringContext.class,i);
26749 		}
26750 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
26751 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
26752 		public TerminalNode COMMA_(int i) {
26753 			return getToken(HiveStatementParser.COMMA_, i);
26754 		}
26755 		public StringListContext(ParserRuleContext parent, int invokingState) {
26756 			super(parent, invokingState);
26757 		}
26758 		@Override public int getRuleIndex() { return RULE_stringList; }
26759 		@Override
26760 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
26761 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitStringList(this);
26762 			else return visitor.visitChildren(this);
26763 		}
26764 	}
26765 
26766 	public final StringListContext stringList() throws RecognitionException {
26767 		StringListContext _localctx = new StringListContext(_ctx, getState());
26768 		enterRule(_localctx, 438, RULE_stringList);
26769 		int _la;
26770 		try {
26771 			enterOuterAlt(_localctx, 1);
26772 			{
26773 			setState(2653);
26774 			match(LP_);
26775 			setState(2654);
26776 			textString();
26777 			setState(2659);
26778 			_errHandler.sync(this);
26779 			_la = _input.LA(1);
26780 			while (_la==COMMA_) {
26781 				{
26782 				{
26783 				setState(2655);
26784 				match(COMMA_);
26785 				setState(2656);
26786 				textString();
26787 				}
26788 				}
26789 				setState(2661);
26790 				_errHandler.sync(this);
26791 				_la = _input.LA(1);
26792 			}
26793 			setState(2662);
26794 			match(RP_);
26795 			}
26796 		}
26797 		catch (RecognitionException re) {
26798 			_localctx.exception = re;
26799 			_errHandler.reportError(this, re);
26800 			_errHandler.recover(this, re);
26801 		}
26802 		finally {
26803 			exitRule();
26804 		}
26805 		return _localctx;
26806 	}
26807 
26808 	public static class TextStringContext extends ParserRuleContext {
26809 		public String_Context string_() {
26810 			return getRuleContext(String_Context.class,0);
26811 		}
26812 		public TerminalNode HEX_DIGIT_() { return getToken(HiveStatementParser.HEX_DIGIT_, 0); }
26813 		public TerminalNode BIT_NUM_() { return getToken(HiveStatementParser.BIT_NUM_, 0); }
26814 		public TextStringContext(ParserRuleContext parent, int invokingState) {
26815 			super(parent, invokingState);
26816 		}
26817 		@Override public int getRuleIndex() { return RULE_textString; }
26818 		@Override
26819 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
26820 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTextString(this);
26821 			else return visitor.visitChildren(this);
26822 		}
26823 	}
26824 
26825 	public final TextStringContext textString() throws RecognitionException {
26826 		TextStringContext _localctx = new TextStringContext(_ctx, getState());
26827 		enterRule(_localctx, 440, RULE_textString);
26828 		try {
26829 			setState(2667);
26830 			_errHandler.sync(this);
26831 			switch (_input.LA(1)) {
26832 			case SINGLE_QUOTED_TEXT:
26833 			case DOUBLE_QUOTED_TEXT:
26834 				enterOuterAlt(_localctx, 1);
26835 				{
26836 				setState(2664);
26837 				string_();
26838 				}
26839 				break;
26840 			case HEX_DIGIT_:
26841 				enterOuterAlt(_localctx, 2);
26842 				{
26843 				setState(2665);
26844 				match(HEX_DIGIT_);
26845 				}
26846 				break;
26847 			case BIT_NUM_:
26848 				enterOuterAlt(_localctx, 3);
26849 				{
26850 				setState(2666);
26851 				match(BIT_NUM_);
26852 				}
26853 				break;
26854 			default:
26855 				throw new NoViableAltException(this);
26856 			}
26857 		}
26858 		catch (RecognitionException re) {
26859 			_localctx.exception = re;
26860 			_errHandler.reportError(this, re);
26861 			_errHandler.recover(this, re);
26862 		}
26863 		finally {
26864 			exitRule();
26865 		}
26866 		return _localctx;
26867 	}
26868 
26869 	public static class TextStringHashContext extends ParserRuleContext {
26870 		public String_Context string_() {
26871 			return getRuleContext(String_Context.class,0);
26872 		}
26873 		public TerminalNode HEX_DIGIT_() { return getToken(HiveStatementParser.HEX_DIGIT_, 0); }
26874 		public TextStringHashContext(ParserRuleContext parent, int invokingState) {
26875 			super(parent, invokingState);
26876 		}
26877 		@Override public int getRuleIndex() { return RULE_textStringHash; }
26878 		@Override
26879 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
26880 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTextStringHash(this);
26881 			else return visitor.visitChildren(this);
26882 		}
26883 	}
26884 
26885 	public final TextStringHashContext textStringHash() throws RecognitionException {
26886 		TextStringHashContext _localctx = new TextStringHashContext(_ctx, getState());
26887 		enterRule(_localctx, 442, RULE_textStringHash);
26888 		try {
26889 			setState(2671);
26890 			_errHandler.sync(this);
26891 			switch (_input.LA(1)) {
26892 			case SINGLE_QUOTED_TEXT:
26893 			case DOUBLE_QUOTED_TEXT:
26894 				enterOuterAlt(_localctx, 1);
26895 				{
26896 				setState(2669);
26897 				string_();
26898 				}
26899 				break;
26900 			case HEX_DIGIT_:
26901 				enterOuterAlt(_localctx, 2);
26902 				{
26903 				setState(2670);
26904 				match(HEX_DIGIT_);
26905 				}
26906 				break;
26907 			default:
26908 				throw new NoViableAltException(this);
26909 			}
26910 		}
26911 		catch (RecognitionException re) {
26912 			_localctx.exception = re;
26913 			_errHandler.reportError(this, re);
26914 			_errHandler.recover(this, re);
26915 		}
26916 		finally {
26917 			exitRule();
26918 		}
26919 		return _localctx;
26920 	}
26921 
26922 	public static class FieldOptionsContext extends ParserRuleContext {
26923 		public List<TerminalNode> UNSIGNED() { return getTokens(HiveStatementParser.UNSIGNED); }
26924 		public TerminalNode UNSIGNED(int i) {
26925 			return getToken(HiveStatementParser.UNSIGNED, i);
26926 		}
26927 		public List<TerminalNode> SIGNED() { return getTokens(HiveStatementParser.SIGNED); }
26928 		public TerminalNode SIGNED(int i) {
26929 			return getToken(HiveStatementParser.SIGNED, i);
26930 		}
26931 		public List<TerminalNode> ZEROFILL() { return getTokens(HiveStatementParser.ZEROFILL); }
26932 		public TerminalNode ZEROFILL(int i) {
26933 			return getToken(HiveStatementParser.ZEROFILL, i);
26934 		}
26935 		public FieldOptionsContext(ParserRuleContext parent, int invokingState) {
26936 			super(parent, invokingState);
26937 		}
26938 		@Override public int getRuleIndex() { return RULE_fieldOptions; }
26939 		@Override
26940 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
26941 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFieldOptions(this);
26942 			else return visitor.visitChildren(this);
26943 		}
26944 	}
26945 
26946 	public final FieldOptionsContext fieldOptions() throws RecognitionException {
26947 		FieldOptionsContext _localctx = new FieldOptionsContext(_ctx, getState());
26948 		enterRule(_localctx, 444, RULE_fieldOptions);
26949 		int _la;
26950 		try {
26951 			int _alt;
26952 			enterOuterAlt(_localctx, 1);
26953 			{
26954 			setState(2674); 
26955 			_errHandler.sync(this);
26956 			_alt = 1;
26957 			do {
26958 				switch (_alt) {
26959 				case 1:
26960 					{
26961 					{
26962 					setState(2673);
26963 					_la = _input.LA(1);
26964 					if ( !(_la==SIGNED || _la==UNSIGNED || _la==ZEROFILL) ) {
26965 					_errHandler.recoverInline(this);
26966 					}
26967 					else {
26968 						if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
26969 						_errHandler.reportMatch(this);
26970 						consume();
26971 					}
26972 					}
26973 					}
26974 					break;
26975 				default:
26976 					throw new NoViableAltException(this);
26977 				}
26978 				setState(2676); 
26979 				_errHandler.sync(this);
26980 				_alt = getInterpreter().adaptivePredict(_input,330,_ctx);
26981 			} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
26982 			}
26983 		}
26984 		catch (RecognitionException re) {
26985 			_localctx.exception = re;
26986 			_errHandler.reportError(this, re);
26987 			_errHandler.recover(this, re);
26988 		}
26989 		finally {
26990 			exitRule();
26991 		}
26992 		return _localctx;
26993 	}
26994 
26995 	public static class PrecisionContext extends ParserRuleContext {
26996 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
26997 		public List<TerminalNode> NUMBER_() { return getTokens(HiveStatementParser.NUMBER_); }
26998 		public TerminalNode NUMBER_(int i) {
26999 			return getToken(HiveStatementParser.NUMBER_, i);
27000 		}
27001 		public TerminalNode COMMA_() { return getToken(HiveStatementParser.COMMA_, 0); }
27002 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
27003 		public PrecisionContext(ParserRuleContext parent, int invokingState) {
27004 			super(parent, invokingState);
27005 		}
27006 		@Override public int getRuleIndex() { return RULE_precision; }
27007 		@Override
27008 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27009 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitPrecision(this);
27010 			else return visitor.visitChildren(this);
27011 		}
27012 	}
27013 
27014 	public final PrecisionContext precision() throws RecognitionException {
27015 		PrecisionContext _localctx = new PrecisionContext(_ctx, getState());
27016 		enterRule(_localctx, 446, RULE_precision);
27017 		try {
27018 			enterOuterAlt(_localctx, 1);
27019 			{
27020 			setState(2678);
27021 			match(LP_);
27022 			setState(2679);
27023 			match(NUMBER_);
27024 			setState(2680);
27025 			match(COMMA_);
27026 			setState(2681);
27027 			match(NUMBER_);
27028 			setState(2682);
27029 			match(RP_);
27030 			}
27031 		}
27032 		catch (RecognitionException re) {
27033 			_localctx.exception = re;
27034 			_errHandler.reportError(this, re);
27035 			_errHandler.recover(this, re);
27036 		}
27037 		finally {
27038 			exitRule();
27039 		}
27040 		return _localctx;
27041 	}
27042 
27043 	public static class TypeDatetimePrecisionContext extends ParserRuleContext {
27044 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
27045 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
27046 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
27047 		public TypeDatetimePrecisionContext(ParserRuleContext parent, int invokingState) {
27048 			super(parent, invokingState);
27049 		}
27050 		@Override public int getRuleIndex() { return RULE_typeDatetimePrecision; }
27051 		@Override
27052 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27053 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitTypeDatetimePrecision(this);
27054 			else return visitor.visitChildren(this);
27055 		}
27056 	}
27057 
27058 	public final TypeDatetimePrecisionContext typeDatetimePrecision() throws RecognitionException {
27059 		TypeDatetimePrecisionContext _localctx = new TypeDatetimePrecisionContext(_ctx, getState());
27060 		enterRule(_localctx, 448, RULE_typeDatetimePrecision);
27061 		try {
27062 			enterOuterAlt(_localctx, 1);
27063 			{
27064 			setState(2684);
27065 			match(LP_);
27066 			setState(2685);
27067 			match(NUMBER_);
27068 			setState(2686);
27069 			match(RP_);
27070 			}
27071 		}
27072 		catch (RecognitionException re) {
27073 			_localctx.exception = re;
27074 			_errHandler.reportError(this, re);
27075 			_errHandler.recover(this, re);
27076 		}
27077 		finally {
27078 			exitRule();
27079 		}
27080 		return _localctx;
27081 	}
27082 
27083 	public static class CharsetWithOptBinaryContext extends ParserRuleContext {
27084 		public AsciiContext ascii() {
27085 			return getRuleContext(AsciiContext.class,0);
27086 		}
27087 		public UnicodeContext unicode() {
27088 			return getRuleContext(UnicodeContext.class,0);
27089 		}
27090 		public TerminalNode BYTE() { return getToken(HiveStatementParser.BYTE, 0); }
27091 		public CharsetContext charset() {
27092 			return getRuleContext(CharsetContext.class,0);
27093 		}
27094 		public CharsetNameContext charsetName() {
27095 			return getRuleContext(CharsetNameContext.class,0);
27096 		}
27097 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
27098 		public CharsetWithOptBinaryContext(ParserRuleContext parent, int invokingState) {
27099 			super(parent, invokingState);
27100 		}
27101 		@Override public int getRuleIndex() { return RULE_charsetWithOptBinary; }
27102 		@Override
27103 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27104 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCharsetWithOptBinary(this);
27105 			else return visitor.visitChildren(this);
27106 		}
27107 	}
27108 
27109 	public final CharsetWithOptBinaryContext charsetWithOptBinary() throws RecognitionException {
27110 		CharsetWithOptBinaryContext _localctx = new CharsetWithOptBinaryContext(_ctx, getState());
27111 		enterRule(_localctx, 450, RULE_charsetWithOptBinary);
27112 		try {
27113 			setState(2702);
27114 			_errHandler.sync(this);
27115 			switch ( getInterpreter().adaptivePredict(_input,333,_ctx) ) {
27116 			case 1:
27117 				enterOuterAlt(_localctx, 1);
27118 				{
27119 				setState(2688);
27120 				ascii();
27121 				}
27122 				break;
27123 			case 2:
27124 				enterOuterAlt(_localctx, 2);
27125 				{
27126 				setState(2689);
27127 				unicode();
27128 				}
27129 				break;
27130 			case 3:
27131 				enterOuterAlt(_localctx, 3);
27132 				{
27133 				setState(2690);
27134 				match(BYTE);
27135 				}
27136 				break;
27137 			case 4:
27138 				enterOuterAlt(_localctx, 4);
27139 				{
27140 				setState(2691);
27141 				charset();
27142 				setState(2692);
27143 				charsetName();
27144 				setState(2694);
27145 				_errHandler.sync(this);
27146 				switch ( getInterpreter().adaptivePredict(_input,331,_ctx) ) {
27147 				case 1:
27148 					{
27149 					setState(2693);
27150 					match(BINARY);
27151 					}
27152 					break;
27153 				}
27154 				}
27155 				break;
27156 			case 5:
27157 				enterOuterAlt(_localctx, 5);
27158 				{
27159 				setState(2696);
27160 				match(BINARY);
27161 				setState(2700);
27162 				_errHandler.sync(this);
27163 				switch ( getInterpreter().adaptivePredict(_input,332,_ctx) ) {
27164 				case 1:
27165 					{
27166 					setState(2697);
27167 					charset();
27168 					setState(2698);
27169 					charsetName();
27170 					}
27171 					break;
27172 				}
27173 				}
27174 				break;
27175 			}
27176 		}
27177 		catch (RecognitionException re) {
27178 			_localctx.exception = re;
27179 			_errHandler.reportError(this, re);
27180 			_errHandler.recover(this, re);
27181 		}
27182 		finally {
27183 			exitRule();
27184 		}
27185 		return _localctx;
27186 	}
27187 
27188 	public static class AsciiContext extends ParserRuleContext {
27189 		public TerminalNode ASCII() { return getToken(HiveStatementParser.ASCII, 0); }
27190 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
27191 		public AsciiContext(ParserRuleContext parent, int invokingState) {
27192 			super(parent, invokingState);
27193 		}
27194 		@Override public int getRuleIndex() { return RULE_ascii; }
27195 		@Override
27196 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27197 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitAscii(this);
27198 			else return visitor.visitChildren(this);
27199 		}
27200 	}
27201 
27202 	public final AsciiContext ascii() throws RecognitionException {
27203 		AsciiContext _localctx = new AsciiContext(_ctx, getState());
27204 		enterRule(_localctx, 452, RULE_ascii);
27205 		try {
27206 			setState(2710);
27207 			_errHandler.sync(this);
27208 			switch (_input.LA(1)) {
27209 			case ASCII:
27210 				enterOuterAlt(_localctx, 1);
27211 				{
27212 				setState(2704);
27213 				match(ASCII);
27214 				setState(2706);
27215 				_errHandler.sync(this);
27216 				switch ( getInterpreter().adaptivePredict(_input,334,_ctx) ) {
27217 				case 1:
27218 					{
27219 					setState(2705);
27220 					match(BINARY);
27221 					}
27222 					break;
27223 				}
27224 				}
27225 				break;
27226 			case BINARY:
27227 				enterOuterAlt(_localctx, 2);
27228 				{
27229 				setState(2708);
27230 				match(BINARY);
27231 				setState(2709);
27232 				match(ASCII);
27233 				}
27234 				break;
27235 			default:
27236 				throw new NoViableAltException(this);
27237 			}
27238 		}
27239 		catch (RecognitionException re) {
27240 			_localctx.exception = re;
27241 			_errHandler.reportError(this, re);
27242 			_errHandler.recover(this, re);
27243 		}
27244 		finally {
27245 			exitRule();
27246 		}
27247 		return _localctx;
27248 	}
27249 
27250 	public static class UnicodeContext extends ParserRuleContext {
27251 		public TerminalNode UNICODE() { return getToken(HiveStatementParser.UNICODE, 0); }
27252 		public TerminalNode BINARY() { return getToken(HiveStatementParser.BINARY, 0); }
27253 		public UnicodeContext(ParserRuleContext parent, int invokingState) {
27254 			super(parent, invokingState);
27255 		}
27256 		@Override public int getRuleIndex() { return RULE_unicode; }
27257 		@Override
27258 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27259 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitUnicode(this);
27260 			else return visitor.visitChildren(this);
27261 		}
27262 	}
27263 
27264 	public final UnicodeContext unicode() throws RecognitionException {
27265 		UnicodeContext _localctx = new UnicodeContext(_ctx, getState());
27266 		enterRule(_localctx, 454, RULE_unicode);
27267 		try {
27268 			setState(2718);
27269 			_errHandler.sync(this);
27270 			switch (_input.LA(1)) {
27271 			case UNICODE:
27272 				enterOuterAlt(_localctx, 1);
27273 				{
27274 				setState(2712);
27275 				match(UNICODE);
27276 				setState(2714);
27277 				_errHandler.sync(this);
27278 				switch ( getInterpreter().adaptivePredict(_input,336,_ctx) ) {
27279 				case 1:
27280 					{
27281 					setState(2713);
27282 					match(BINARY);
27283 					}
27284 					break;
27285 				}
27286 				}
27287 				break;
27288 			case BINARY:
27289 				enterOuterAlt(_localctx, 2);
27290 				{
27291 				setState(2716);
27292 				match(BINARY);
27293 				setState(2717);
27294 				match(UNICODE);
27295 				}
27296 				break;
27297 			default:
27298 				throw new NoViableAltException(this);
27299 			}
27300 		}
27301 		catch (RecognitionException re) {
27302 			_localctx.exception = re;
27303 			_errHandler.reportError(this, re);
27304 			_errHandler.recover(this, re);
27305 		}
27306 		finally {
27307 			exitRule();
27308 		}
27309 		return _localctx;
27310 	}
27311 
27312 	public static class CharsetContext extends ParserRuleContext {
27313 		public TerminalNode SET() { return getToken(HiveStatementParser.SET, 0); }
27314 		public TerminalNode CHAR() { return getToken(HiveStatementParser.CHAR, 0); }
27315 		public TerminalNode CHARACTER() { return getToken(HiveStatementParser.CHARACTER, 0); }
27316 		public TerminalNode CHARSET() { return getToken(HiveStatementParser.CHARSET, 0); }
27317 		public CharsetContext(ParserRuleContext parent, int invokingState) {
27318 			super(parent, invokingState);
27319 		}
27320 		@Override public int getRuleIndex() { return RULE_charset; }
27321 		@Override
27322 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27323 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCharset(this);
27324 			else return visitor.visitChildren(this);
27325 		}
27326 	}
27327 
27328 	public final CharsetContext charset() throws RecognitionException {
27329 		CharsetContext _localctx = new CharsetContext(_ctx, getState());
27330 		enterRule(_localctx, 456, RULE_charset);
27331 		int _la;
27332 		try {
27333 			setState(2723);
27334 			_errHandler.sync(this);
27335 			switch (_input.LA(1)) {
27336 			case CHAR:
27337 			case CHARACTER:
27338 				enterOuterAlt(_localctx, 1);
27339 				{
27340 				setState(2720);
27341 				_la = _input.LA(1);
27342 				if ( !(_la==CHAR || _la==CHARACTER) ) {
27343 				_errHandler.recoverInline(this);
27344 				}
27345 				else {
27346 					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
27347 					_errHandler.reportMatch(this);
27348 					consume();
27349 				}
27350 				setState(2721);
27351 				match(SET);
27352 				}
27353 				break;
27354 			case CHARSET:
27355 				enterOuterAlt(_localctx, 2);
27356 				{
27357 				setState(2722);
27358 				match(CHARSET);
27359 				}
27360 				break;
27361 			default:
27362 				throw new NoViableAltException(this);
27363 			}
27364 		}
27365 		catch (RecognitionException re) {
27366 			_localctx.exception = re;
27367 			_errHandler.reportError(this, re);
27368 			_errHandler.recover(this, re);
27369 		}
27370 		finally {
27371 			exitRule();
27372 		}
27373 		return _localctx;
27374 	}
27375 
27376 	public static class DefaultCollationContext extends ParserRuleContext {
27377 		public TerminalNode COLLATE() { return getToken(HiveStatementParser.COLLATE, 0); }
27378 		public CollationNameContext collationName() {
27379 			return getRuleContext(CollationNameContext.class,0);
27380 		}
27381 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
27382 		public TerminalNode EQ_() { return getToken(HiveStatementParser.EQ_, 0); }
27383 		public DefaultCollationContext(ParserRuleContext parent, int invokingState) {
27384 			super(parent, invokingState);
27385 		}
27386 		@Override public int getRuleIndex() { return RULE_defaultCollation; }
27387 		@Override
27388 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27389 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDefaultCollation(this);
27390 			else return visitor.visitChildren(this);
27391 		}
27392 	}
27393 
27394 	public final DefaultCollationContext defaultCollation() throws RecognitionException {
27395 		DefaultCollationContext _localctx = new DefaultCollationContext(_ctx, getState());
27396 		enterRule(_localctx, 458, RULE_defaultCollation);
27397 		int _la;
27398 		try {
27399 			enterOuterAlt(_localctx, 1);
27400 			{
27401 			setState(2726);
27402 			_errHandler.sync(this);
27403 			_la = _input.LA(1);
27404 			if (_la==DEFAULT) {
27405 				{
27406 				setState(2725);
27407 				match(DEFAULT);
27408 				}
27409 			}
27410 
27411 			setState(2728);
27412 			match(COLLATE);
27413 			setState(2730);
27414 			_errHandler.sync(this);
27415 			_la = _input.LA(1);
27416 			if (_la==EQ_) {
27417 				{
27418 				setState(2729);
27419 				match(EQ_);
27420 				}
27421 			}
27422 
27423 			setState(2732);
27424 			collationName();
27425 			}
27426 		}
27427 		catch (RecognitionException re) {
27428 			_localctx.exception = re;
27429 			_errHandler.reportError(this, re);
27430 			_errHandler.recover(this, re);
27431 		}
27432 		finally {
27433 			exitRule();
27434 		}
27435 		return _localctx;
27436 	}
27437 
27438 	public static class DefaultEncryptionContext extends ParserRuleContext {
27439 		public TerminalNode ENCRYPTION() { return getToken(HiveStatementParser.ENCRYPTION, 0); }
27440 		public String_Context string_() {
27441 			return getRuleContext(String_Context.class,0);
27442 		}
27443 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
27444 		public TerminalNode EQ_() { return getToken(HiveStatementParser.EQ_, 0); }
27445 		public DefaultEncryptionContext(ParserRuleContext parent, int invokingState) {
27446 			super(parent, invokingState);
27447 		}
27448 		@Override public int getRuleIndex() { return RULE_defaultEncryption; }
27449 		@Override
27450 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27451 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDefaultEncryption(this);
27452 			else return visitor.visitChildren(this);
27453 		}
27454 	}
27455 
27456 	public final DefaultEncryptionContext defaultEncryption() throws RecognitionException {
27457 		DefaultEncryptionContext _localctx = new DefaultEncryptionContext(_ctx, getState());
27458 		enterRule(_localctx, 460, RULE_defaultEncryption);
27459 		int _la;
27460 		try {
27461 			enterOuterAlt(_localctx, 1);
27462 			{
27463 			setState(2735);
27464 			_errHandler.sync(this);
27465 			_la = _input.LA(1);
27466 			if (_la==DEFAULT) {
27467 				{
27468 				setState(2734);
27469 				match(DEFAULT);
27470 				}
27471 			}
27472 
27473 			setState(2737);
27474 			match(ENCRYPTION);
27475 			setState(2739);
27476 			_errHandler.sync(this);
27477 			_la = _input.LA(1);
27478 			if (_la==EQ_) {
27479 				{
27480 				setState(2738);
27481 				match(EQ_);
27482 				}
27483 			}
27484 
27485 			setState(2741);
27486 			string_();
27487 			}
27488 		}
27489 		catch (RecognitionException re) {
27490 			_localctx.exception = re;
27491 			_errHandler.reportError(this, re);
27492 			_errHandler.recover(this, re);
27493 		}
27494 		finally {
27495 			exitRule();
27496 		}
27497 		return _localctx;
27498 	}
27499 
27500 	public static class DefaultCharsetContext extends ParserRuleContext {
27501 		public CharsetContext charset() {
27502 			return getRuleContext(CharsetContext.class,0);
27503 		}
27504 		public CharsetNameContext charsetName() {
27505 			return getRuleContext(CharsetNameContext.class,0);
27506 		}
27507 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
27508 		public TerminalNode EQ_() { return getToken(HiveStatementParser.EQ_, 0); }
27509 		public DefaultCharsetContext(ParserRuleContext parent, int invokingState) {
27510 			super(parent, invokingState);
27511 		}
27512 		@Override public int getRuleIndex() { return RULE_defaultCharset; }
27513 		@Override
27514 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27515 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDefaultCharset(this);
27516 			else return visitor.visitChildren(this);
27517 		}
27518 	}
27519 
27520 	public final DefaultCharsetContext defaultCharset() throws RecognitionException {
27521 		DefaultCharsetContext _localctx = new DefaultCharsetContext(_ctx, getState());
27522 		enterRule(_localctx, 462, RULE_defaultCharset);
27523 		int _la;
27524 		try {
27525 			enterOuterAlt(_localctx, 1);
27526 			{
27527 			setState(2744);
27528 			_errHandler.sync(this);
27529 			_la = _input.LA(1);
27530 			if (_la==DEFAULT) {
27531 				{
27532 				setState(2743);
27533 				match(DEFAULT);
27534 				}
27535 			}
27536 
27537 			setState(2746);
27538 			charset();
27539 			setState(2748);
27540 			_errHandler.sync(this);
27541 			_la = _input.LA(1);
27542 			if (_la==EQ_) {
27543 				{
27544 				setState(2747);
27545 				match(EQ_);
27546 				}
27547 			}
27548 
27549 			setState(2750);
27550 			charsetName();
27551 			}
27552 		}
27553 		catch (RecognitionException re) {
27554 			_localctx.exception = re;
27555 			_errHandler.reportError(this, re);
27556 			_errHandler.recover(this, re);
27557 		}
27558 		finally {
27559 			exitRule();
27560 		}
27561 		return _localctx;
27562 	}
27563 
27564 	public static class NowContext extends ParserRuleContext {
27565 		public TerminalNode CURRENT_TIMESTAMP() { return getToken(HiveStatementParser.CURRENT_TIMESTAMP, 0); }
27566 		public TerminalNode LOCALTIME() { return getToken(HiveStatementParser.LOCALTIME, 0); }
27567 		public TerminalNode LOCALTIMESTAMP() { return getToken(HiveStatementParser.LOCALTIMESTAMP, 0); }
27568 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
27569 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
27570 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
27571 		public NowContext(ParserRuleContext parent, int invokingState) {
27572 			super(parent, invokingState);
27573 		}
27574 		@Override public int getRuleIndex() { return RULE_now; }
27575 		@Override
27576 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27577 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNow(this);
27578 			else return visitor.visitChildren(this);
27579 		}
27580 	}
27581 
27582 	public final NowContext now() throws RecognitionException {
27583 		NowContext _localctx = new NowContext(_ctx, getState());
27584 		enterRule(_localctx, 464, RULE_now);
27585 		int _la;
27586 		try {
27587 			enterOuterAlt(_localctx, 1);
27588 			{
27589 			setState(2752);
27590 			_la = _input.LA(1);
27591 			if ( !(_la==CURRENT_TIMESTAMP || _la==LOCALTIME || _la==LOCALTIMESTAMP) ) {
27592 			_errHandler.recoverInline(this);
27593 			}
27594 			else {
27595 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
27596 				_errHandler.reportMatch(this);
27597 				consume();
27598 			}
27599 			setState(2758);
27600 			_errHandler.sync(this);
27601 			_la = _input.LA(1);
27602 			if (_la==LP_) {
27603 				{
27604 				setState(2753);
27605 				match(LP_);
27606 				setState(2755);
27607 				_errHandler.sync(this);
27608 				_la = _input.LA(1);
27609 				if (_la==NUMBER_) {
27610 					{
27611 					setState(2754);
27612 					match(NUMBER_);
27613 					}
27614 				}
27615 
27616 				setState(2757);
27617 				match(RP_);
27618 				}
27619 			}
27620 
27621 			}
27622 		}
27623 		catch (RecognitionException re) {
27624 			_localctx.exception = re;
27625 			_errHandler.reportError(this, re);
27626 			_errHandler.recover(this, re);
27627 		}
27628 		finally {
27629 			exitRule();
27630 		}
27631 		return _localctx;
27632 	}
27633 
27634 	public static class ColumnFormatContext extends ParserRuleContext {
27635 		public TerminalNode FIXED() { return getToken(HiveStatementParser.FIXED, 0); }
27636 		public TerminalNode DYNAMIC() { return getToken(HiveStatementParser.DYNAMIC, 0); }
27637 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
27638 		public ColumnFormatContext(ParserRuleContext parent, int invokingState) {
27639 			super(parent, invokingState);
27640 		}
27641 		@Override public int getRuleIndex() { return RULE_columnFormat; }
27642 		@Override
27643 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27644 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitColumnFormat(this);
27645 			else return visitor.visitChildren(this);
27646 		}
27647 	}
27648 
27649 	public final ColumnFormatContext columnFormat() throws RecognitionException {
27650 		ColumnFormatContext _localctx = new ColumnFormatContext(_ctx, getState());
27651 		enterRule(_localctx, 466, RULE_columnFormat);
27652 		int _la;
27653 		try {
27654 			enterOuterAlt(_localctx, 1);
27655 			{
27656 			setState(2760);
27657 			_la = _input.LA(1);
27658 			if ( !(_la==DEFAULT || _la==DYNAMIC || _la==FIXED) ) {
27659 			_errHandler.recoverInline(this);
27660 			}
27661 			else {
27662 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
27663 				_errHandler.reportMatch(this);
27664 				consume();
27665 			}
27666 			}
27667 		}
27668 		catch (RecognitionException re) {
27669 			_localctx.exception = re;
27670 			_errHandler.reportError(this, re);
27671 			_errHandler.recover(this, re);
27672 		}
27673 		finally {
27674 			exitRule();
27675 		}
27676 		return _localctx;
27677 	}
27678 
27679 	public static class StorageMediaContext extends ParserRuleContext {
27680 		public TerminalNode DISK() { return getToken(HiveStatementParser.DISK, 0); }
27681 		public TerminalNode MEMORY() { return getToken(HiveStatementParser.MEMORY, 0); }
27682 		public TerminalNode DEFAULT() { return getToken(HiveStatementParser.DEFAULT, 0); }
27683 		public StorageMediaContext(ParserRuleContext parent, int invokingState) {
27684 			super(parent, invokingState);
27685 		}
27686 		@Override public int getRuleIndex() { return RULE_storageMedia; }
27687 		@Override
27688 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27689 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitStorageMedia(this);
27690 			else return visitor.visitChildren(this);
27691 		}
27692 	}
27693 
27694 	public final StorageMediaContext storageMedia() throws RecognitionException {
27695 		StorageMediaContext _localctx = new StorageMediaContext(_ctx, getState());
27696 		enterRule(_localctx, 468, RULE_storageMedia);
27697 		int _la;
27698 		try {
27699 			enterOuterAlt(_localctx, 1);
27700 			{
27701 			setState(2762);
27702 			_la = _input.LA(1);
27703 			if ( !(_la==DEFAULT || _la==DISK || _la==MEMORY) ) {
27704 			_errHandler.recoverInline(this);
27705 			}
27706 			else {
27707 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
27708 				_errHandler.reportMatch(this);
27709 				consume();
27710 			}
27711 			}
27712 		}
27713 		catch (RecognitionException re) {
27714 			_localctx.exception = re;
27715 			_errHandler.reportError(this, re);
27716 			_errHandler.recover(this, re);
27717 		}
27718 		finally {
27719 			exitRule();
27720 		}
27721 		return _localctx;
27722 	}
27723 
27724 	public static class DirectionContext extends ParserRuleContext {
27725 		public TerminalNode ASC() { return getToken(HiveStatementParser.ASC, 0); }
27726 		public TerminalNode DESC() { return getToken(HiveStatementParser.DESC, 0); }
27727 		public DirectionContext(ParserRuleContext parent, int invokingState) {
27728 			super(parent, invokingState);
27729 		}
27730 		@Override public int getRuleIndex() { return RULE_direction; }
27731 		@Override
27732 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27733 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitDirection(this);
27734 			else return visitor.visitChildren(this);
27735 		}
27736 	}
27737 
27738 	public final DirectionContext direction() throws RecognitionException {
27739 		DirectionContext _localctx = new DirectionContext(_ctx, getState());
27740 		enterRule(_localctx, 470, RULE_direction);
27741 		int _la;
27742 		try {
27743 			enterOuterAlt(_localctx, 1);
27744 			{
27745 			setState(2764);
27746 			_la = _input.LA(1);
27747 			if ( !(_la==ASC || _la==DESC) ) {
27748 			_errHandler.recoverInline(this);
27749 			}
27750 			else {
27751 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
27752 				_errHandler.reportMatch(this);
27753 				consume();
27754 			}
27755 			}
27756 		}
27757 		catch (RecognitionException re) {
27758 			_localctx.exception = re;
27759 			_errHandler.reportError(this, re);
27760 			_errHandler.recover(this, re);
27761 		}
27762 		finally {
27763 			exitRule();
27764 		}
27765 		return _localctx;
27766 	}
27767 
27768 	public static class KeyOrIndexContext extends ParserRuleContext {
27769 		public TerminalNode KEY() { return getToken(HiveStatementParser.KEY, 0); }
27770 		public TerminalNode INDEX() { return getToken(HiveStatementParser.INDEX, 0); }
27771 		public KeyOrIndexContext(ParserRuleContext parent, int invokingState) {
27772 			super(parent, invokingState);
27773 		}
27774 		@Override public int getRuleIndex() { return RULE_keyOrIndex; }
27775 		@Override
27776 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27777 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitKeyOrIndex(this);
27778 			else return visitor.visitChildren(this);
27779 		}
27780 	}
27781 
27782 	public final KeyOrIndexContext keyOrIndex() throws RecognitionException {
27783 		KeyOrIndexContext _localctx = new KeyOrIndexContext(_ctx, getState());
27784 		enterRule(_localctx, 472, RULE_keyOrIndex);
27785 		int _la;
27786 		try {
27787 			enterOuterAlt(_localctx, 1);
27788 			{
27789 			setState(2766);
27790 			_la = _input.LA(1);
27791 			if ( !(_la==INDEX || _la==KEY) ) {
27792 			_errHandler.recoverInline(this);
27793 			}
27794 			else {
27795 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
27796 				_errHandler.reportMatch(this);
27797 				consume();
27798 			}
27799 			}
27800 		}
27801 		catch (RecognitionException re) {
27802 			_localctx.exception = re;
27803 			_errHandler.reportError(this, re);
27804 			_errHandler.recover(this, re);
27805 		}
27806 		finally {
27807 			exitRule();
27808 		}
27809 		return _localctx;
27810 	}
27811 
27812 	public static class FieldLengthContext extends ParserRuleContext {
27813 		public Token length;
27814 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
27815 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
27816 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
27817 		public FieldLengthContext(ParserRuleContext parent, int invokingState) {
27818 			super(parent, invokingState);
27819 		}
27820 		@Override public int getRuleIndex() { return RULE_fieldLength; }
27821 		@Override
27822 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27823 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFieldLength(this);
27824 			else return visitor.visitChildren(this);
27825 		}
27826 	}
27827 
27828 	public final FieldLengthContext fieldLength() throws RecognitionException {
27829 		FieldLengthContext _localctx = new FieldLengthContext(_ctx, getState());
27830 		enterRule(_localctx, 474, RULE_fieldLength);
27831 		try {
27832 			enterOuterAlt(_localctx, 1);
27833 			{
27834 			setState(2768);
27835 			match(LP_);
27836 			setState(2769);
27837 			((FieldLengthContext)_localctx).length = match(NUMBER_);
27838 			setState(2770);
27839 			match(RP_);
27840 			}
27841 		}
27842 		catch (RecognitionException re) {
27843 			_localctx.exception = re;
27844 			_errHandler.reportError(this, re);
27845 			_errHandler.recover(this, re);
27846 		}
27847 		finally {
27848 			exitRule();
27849 		}
27850 		return _localctx;
27851 	}
27852 
27853 	public static class CharacterSetContext extends ParserRuleContext {
27854 		public CharsetContext charset() {
27855 			return getRuleContext(CharsetContext.class,0);
27856 		}
27857 		public CharsetNameContext charsetName() {
27858 			return getRuleContext(CharsetNameContext.class,0);
27859 		}
27860 		public CharacterSetContext(ParserRuleContext parent, int invokingState) {
27861 			super(parent, invokingState);
27862 		}
27863 		@Override public int getRuleIndex() { return RULE_characterSet; }
27864 		@Override
27865 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27866 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCharacterSet(this);
27867 			else return visitor.visitChildren(this);
27868 		}
27869 	}
27870 
27871 	public final CharacterSetContext characterSet() throws RecognitionException {
27872 		CharacterSetContext _localctx = new CharacterSetContext(_ctx, getState());
27873 		enterRule(_localctx, 476, RULE_characterSet);
27874 		try {
27875 			enterOuterAlt(_localctx, 1);
27876 			{
27877 			setState(2772);
27878 			charset();
27879 			setState(2773);
27880 			charsetName();
27881 			}
27882 		}
27883 		catch (RecognitionException re) {
27884 			_localctx.exception = re;
27885 			_errHandler.reportError(this, re);
27886 			_errHandler.recover(this, re);
27887 		}
27888 		finally {
27889 			exitRule();
27890 		}
27891 		return _localctx;
27892 	}
27893 
27894 	public static class CollateClauseContext extends ParserRuleContext {
27895 		public TerminalNode COLLATE() { return getToken(HiveStatementParser.COLLATE, 0); }
27896 		public CollationNameContext collationName() {
27897 			return getRuleContext(CollationNameContext.class,0);
27898 		}
27899 		public ParameterMarkerContext parameterMarker() {
27900 			return getRuleContext(ParameterMarkerContext.class,0);
27901 		}
27902 		public CollateClauseContext(ParserRuleContext parent, int invokingState) {
27903 			super(parent, invokingState);
27904 		}
27905 		@Override public int getRuleIndex() { return RULE_collateClause; }
27906 		@Override
27907 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
27908 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCollateClause(this);
27909 			else return visitor.visitChildren(this);
27910 		}
27911 	}
27912 
27913 	public final CollateClauseContext collateClause() throws RecognitionException {
27914 		CollateClauseContext _localctx = new CollateClauseContext(_ctx, getState());
27915 		enterRule(_localctx, 478, RULE_collateClause);
27916 		try {
27917 			enterOuterAlt(_localctx, 1);
27918 			{
27919 			setState(2775);
27920 			match(COLLATE);
27921 			setState(2778);
27922 			_errHandler.sync(this);
27923 			switch (_input.LA(1)) {
27924 			case MAX:
27925 			case MIN:
27926 			case SUM:
27927 			case COUNT:
27928 			case GROUP_CONCAT:
27929 			case CAST:
27930 			case POSITION:
27931 			case SUBSTRING:
27932 			case SUBSTR:
27933 			case EXTRACT:
27934 			case TRIM:
27935 			case LAST_DAY:
27936 			case TRADITIONAL:
27937 			case TREE:
27938 			case MYSQL_MAIN:
27939 			case MYSQL_ADMIN:
27940 			case INSTANT:
27941 			case INPLACE:
27942 			case COPY:
27943 			case UL_BINARY:
27944 			case AUTOCOMMIT:
27945 			case INNODB:
27946 			case REDO_LOG:
27947 			case ACCOUNT:
27948 			case ACTION:
27949 			case ACTIVE:
27950 			case ADMIN:
27951 			case AFTER:
27952 			case AGAINST:
27953 			case AGGREGATE:
27954 			case ALGORITHM:
27955 			case ALWAYS:
27956 			case ANY:
27957 			case ARRAY:
27958 			case ASCII:
27959 			case AT:
27960 			case ATTRIBUTE:
27961 			case AUTOEXTEND_SIZE:
27962 			case AUTO_INCREMENT:
27963 			case AVG:
27964 			case BIT_XOR:
27965 			case AVG_ROW_LENGTH:
27966 			case BACKUP:
27967 			case BEGIN:
27968 			case BINARY:
27969 			case BINLOG:
27970 			case BIT:
27971 			case BLOCK:
27972 			case BOOL:
27973 			case BOOLEAN:
27974 			case BTREE:
27975 			case BUCKETS:
27976 			case BYTE:
27977 			case CACHE:
27978 			case CASCADED:
27979 			case CATALOG_NAME:
27980 			case CHAIN:
27981 			case CHANGED:
27982 			case CHANNEL:
27983 			case CHARSET:
27984 			case CHECKSUM:
27985 			case CIPHER:
27986 			case CLASS_ORIGIN:
27987 			case CLIENT:
27988 			case CLONE:
27989 			case CLOSE:
27990 			case COALESCE:
27991 			case CODE:
27992 			case COLLATION:
27993 			case COLUMNS:
27994 			case COLUMN_FORMAT:
27995 			case COLUMN_NAME:
27996 			case COMMENT:
27997 			case COMMIT:
27998 			case COMMITTED:
27999 			case COMPACT:
28000 			case COMPLETION:
28001 			case COMPONENT:
28002 			case COMPRESSED:
28003 			case COMPRESSION:
28004 			case CONCURRENT:
28005 			case CONNECTION:
28006 			case CONSISTENT:
28007 			case CONSTRAINT_CATALOG:
28008 			case CONSTRAINT_NAME:
28009 			case CONSTRAINT_SCHEMA:
28010 			case CONTAINS:
28011 			case CONTEXT:
28012 			case CPU:
28013 			case CREATE:
28014 			case CURRENT:
28015 			case CURSOR_NAME:
28016 			case DATA:
28017 			case DATAFILE:
28018 			case DATE:
28019 			case DATETIME:
28020 			case DAY:
28021 			case DAY_MINUTE:
28022 			case DEALLOCATE:
28023 			case DEFAULT_AUTH:
28024 			case DEFINER:
28025 			case DEFINITION:
28026 			case DELAY_KEY_WRITE:
28027 			case DESCRIPTION:
28028 			case DIAGNOSTICS:
28029 			case DIRECTORY:
28030 			case DISABLE:
28031 			case DISCARD:
28032 			case DISK:
28033 			case DO:
28034 			case DUMPFILE:
28035 			case DUPLICATE:
28036 			case DYNAMIC:
28037 			case ENABLE:
28038 			case ENCRYPTION:
28039 			case END:
28040 			case ENDS:
28041 			case ENFORCED:
28042 			case ENGINE:
28043 			case ENGINES:
28044 			case ENGINE_ATTRIBUTE:
28045 			case ENUM:
28046 			case ERROR:
28047 			case ERRORS:
28048 			case ESCAPE:
28049 			case EVENT:
28050 			case EVENTS:
28051 			case EVERY:
28052 			case EXCHANGE:
28053 			case EXCLUDE:
28054 			case EXECUTE:
28055 			case EXPANSION:
28056 			case EXPIRE:
28057 			case EXPORT:
28058 			case EXTENDED:
28059 			case EXTENT_SIZE:
28060 			case FAILED_LOGIN_ATTEMPTS:
28061 			case FAST:
28062 			case FAULTS:
28063 			case FILE:
28064 			case FILE_BLOCK_SIZE:
28065 			case FILTER:
28066 			case FIRST:
28067 			case FIXED:
28068 			case FLUSH:
28069 			case FOLLOWING:
28070 			case FOLLOWS:
28071 			case FORMAT:
28072 			case FOUND:
28073 			case FULL:
28074 			case GENERAL:
28075 			case GEOMETRY:
28076 			case GEOMETRYCOLLECTION:
28077 			case GET_FORMAT:
28078 			case GET_MASTER_PUBLIC_KEY:
28079 			case GLOBAL:
28080 			case GRANTS:
28081 			case GROUP_REPLICATION:
28082 			case HANDLER:
28083 			case HASH:
28084 			case HELP:
28085 			case HISTOGRAM:
28086 			case HISTORY:
28087 			case HOST:
28088 			case HOSTS:
28089 			case HOUR:
28090 			case IDENTIFIED:
28091 			case IGNORE_SERVER_IDS:
28092 			case IMPORT:
28093 			case INACTIVE:
28094 			case INDEXES:
28095 			case INITIAL_SIZE:
28096 			case INSERT_METHOD:
28097 			case INSTALL:
28098 			case INSTANCE:
28099 			case INVISIBLE:
28100 			case INVOKER:
28101 			case IO:
28102 			case IPC:
28103 			case ISOLATION:
28104 			case ISSUER:
28105 			case JSON:
28106 			case JSON_VALUE:
28107 			case KEY:
28108 			case KEY_BLOCK_SIZE:
28109 			case LANGUAGE:
28110 			case LAST:
28111 			case LAST_VALUE:
28112 			case LEAVES:
28113 			case LESS:
28114 			case LEVEL:
28115 			case LINESTRING:
28116 			case LIST:
28117 			case LOCAL:
28118 			case LOCKED:
28119 			case LOCKS:
28120 			case LOGFILE:
28121 			case LOGS:
28122 			case MASTER:
28123 			case MASTER_AUTO_POSITION:
28124 			case MASTER_COMPRESSION_ALGORITHM:
28125 			case MASTER_CONNECT_RETRY:
28126 			case MASTER_DELAY:
28127 			case MASTER_HEARTBEAT_PERIOD:
28128 			case MASTER_HOST:
28129 			case MASTER_LOG_FILE:
28130 			case MASTER_LOG_POS:
28131 			case MASTER_PASSWORD:
28132 			case MASTER_PORT:
28133 			case MASTER_PUBLIC_KEY_PATH:
28134 			case MASTER_RETRY_COUNT:
28135 			case MASTER_SERVER_ID:
28136 			case MASTER_SSL:
28137 			case MASTER_SSL_CA:
28138 			case MASTER_SSL_CAPATH:
28139 			case MASTER_SSL_CERT:
28140 			case MASTER_SSL_CIPHER:
28141 			case MASTER_SSL_CRL:
28142 			case MASTER_SSL_CRLPATH:
28143 			case MASTER_SSL_KEY:
28144 			case MASTER_TLS_CIPHERSUITES:
28145 			case MASTER_TLS_VERSION:
28146 			case MASTER_USER:
28147 			case MASTER_ZSTD_COMPRESSION_LEVEL:
28148 			case MAXVALUE:
28149 			case MAX_CONNECTIONS_PER_HOUR:
28150 			case MAX_QUERIES_PER_HOUR:
28151 			case MAX_ROWS:
28152 			case MAX_SIZE:
28153 			case MAX_UPDATES_PER_HOUR:
28154 			case MAX_USER_CONNECTIONS:
28155 			case MEDIUM:
28156 			case MEMBER:
28157 			case MEMORY:
28158 			case MERGE:
28159 			case MESSAGE_TEXT:
28160 			case MICROSECOND:
28161 			case MIGRATE:
28162 			case MINUTE:
28163 			case MIN_ROWS:
28164 			case MODE:
28165 			case MODIFY:
28166 			case MONTH:
28167 			case MULTILINESTRING:
28168 			case MULTIPOINT:
28169 			case MULTIPOLYGON:
28170 			case MUTEX:
28171 			case MYSQL_ERRNO:
28172 			case NAME:
28173 			case NAMES:
28174 			case NATIONAL:
28175 			case NCHAR:
28176 			case NDBCLUSTER:
28177 			case NESTED:
28178 			case NETWORK_NAMESPACE:
28179 			case NEVER:
28180 			case NEW:
28181 			case NEXT:
28182 			case NO:
28183 			case NODEGROUP:
28184 			case NONE:
28185 			case NOWAIT:
28186 			case NO_WAIT:
28187 			case NULLS:
28188 			case NUMBER:
28189 			case NVARCHAR:
28190 			case OFF:
28191 			case OFFSET:
28192 			case OJ:
28193 			case OLD:
28194 			case ONE:
28195 			case ONLY:
28196 			case OPEN:
28197 			case OPTIONAL:
28198 			case OPTIONS:
28199 			case ORDINALITY:
28200 			case ORGANIZATION:
28201 			case OTHERS:
28202 			case OWNER:
28203 			case PACK_KEYS:
28204 			case PAGE:
28205 			case PARSER:
28206 			case PARTIAL:
28207 			case PARTITIONING:
28208 			case PARTITIONS:
28209 			case PASSWORD:
28210 			case PASSWORD_LOCK_TIME:
28211 			case PATH:
28212 			case PERSIST:
28213 			case PERSIST_ONLY:
28214 			case PHASE:
28215 			case PLUGIN:
28216 			case PLUGINS:
28217 			case PLUGIN_DIR:
28218 			case POINT:
28219 			case POLYGON:
28220 			case PORT:
28221 			case PRECEDES:
28222 			case PRECEDING:
28223 			case PREPARE:
28224 			case PRESERVE:
28225 			case PREV:
28226 			case PRIMARY:
28227 			case PRIVILEGES:
28228 			case PRIVILEGE_CHECKS_USER:
28229 			case PROCESS:
28230 			case PROCESSLIST:
28231 			case PROFILE:
28232 			case PROFILES:
28233 			case PROXY:
28234 			case QUARTER:
28235 			case QUERY:
28236 			case QUICK:
28237 			case RANDOM:
28238 			case READ_ONLY:
28239 			case REBUILD:
28240 			case RECOVER:
28241 			case REDO_BUFFER_SIZE:
28242 			case REDUNDANT:
28243 			case REFERENCE:
28244 			case RELAY:
28245 			case RELAYLOG:
28246 			case RELAY_LOG_FILE:
28247 			case RELAY_LOG_POS:
28248 			case RELAY_THREAD:
28249 			case RELOAD:
28250 			case REMOVE:
28251 			case REORGANIZE:
28252 			case REPAIR:
28253 			case REPEATABLE:
28254 			case REPLICATE_DO_DB:
28255 			case REPLICATE_DO_TABLE:
28256 			case REPLICATE_IGNORE_DB:
28257 			case REPLICATE_IGNORE_TABLE:
28258 			case REPLICATE_REWRITE_DB:
28259 			case REPLICATE_WILD_DO_TABLE:
28260 			case REPLICATE_WILD_IGNORE_TABLE:
28261 			case REPLICATION:
28262 			case REQUIRE_ROW_FORMAT:
28263 			case RESET:
28264 			case RESOURCE:
28265 			case RESPECT:
28266 			case RESTART:
28267 			case RESTORE:
28268 			case RESUME:
28269 			case RETAIN:
28270 			case RETURNED_SQLSTATE:
28271 			case RETURNING:
28272 			case RETURNS:
28273 			case REUSE:
28274 			case REVERSE:
28275 			case ROLE:
28276 			case ROLLBACK:
28277 			case ROLLUP:
28278 			case ROTATE:
28279 			case ROUTINE:
28280 			case ROW_COUNT:
28281 			case ROW_FORMAT:
28282 			case RTREE:
28283 			case SAVEPOINT:
28284 			case SCHEDULE:
28285 			case SCHEMA_NAME:
28286 			case SECOND:
28287 			case SECONDARY:
28288 			case SECONDARY_ENGINE:
28289 			case SECONDARY_ENGINE_ATTRIBUTE:
28290 			case SECONDARY_LOAD:
28291 			case SECONDARY_UNLOAD:
28292 			case SECURITY:
28293 			case SERIAL:
28294 			case SERIALIZABLE:
28295 			case SERVER:
28296 			case SESSION:
28297 			case SHARE:
28298 			case SHUTDOWN:
28299 			case SIGNED:
28300 			case SIMPLE:
28301 			case SLAVE:
28302 			case SLOW:
28303 			case SNAPSHOT:
28304 			case SOCKET:
28305 			case SONAME:
28306 			case SOUNDS:
28307 			case SOURCE:
28308 			case SQL_AFTER_GTIDS:
28309 			case SQL_AFTER_MTS_GAPS:
28310 			case SQL_BEFORE_GTIDS:
28311 			case SQL_BUFFER_RESULT:
28312 			case SQL_NO_CACHE:
28313 			case SQL_THREAD:
28314 			case SRID:
28315 			case STACKED:
28316 			case START:
28317 			case STARTS:
28318 			case STATS_AUTO_RECALC:
28319 			case STATS_PERSISTENT:
28320 			case STATS_SAMPLE_PAGES:
28321 			case STATUS:
28322 			case STOP:
28323 			case STORAGE:
28324 			case STREAM:
28325 			case STRING:
28326 			case SUBCLASS_ORIGIN:
28327 			case SUBJECT:
28328 			case SUBPARTITION:
28329 			case SUBPARTITIONS:
28330 			case SUPER:
28331 			case SUSPEND:
28332 			case SWAPS:
28333 			case SWITCHES:
28334 			case SYSTEM:
28335 			case TABLE:
28336 			case TABLES:
28337 			case TABLESPACE:
28338 			case TABLE_CHECKSUM:
28339 			case TABLE_NAME:
28340 			case TEMPORARY:
28341 			case TEMPTABLE:
28342 			case TEXT:
28343 			case THAN:
28344 			case THREAD_PRIORITY:
28345 			case TIES:
28346 			case TIME:
28347 			case TIMESTAMP:
28348 			case TIMESTAMP_ADD:
28349 			case TIMESTAMP_DIFF:
28350 			case TLS:
28351 			case TRANSACTION:
28352 			case TRIGGERS:
28353 			case TRUNCATE:
28354 			case TYPE:
28355 			case TYPES:
28356 			case UNBOUNDED:
28357 			case UNCOMMITTED:
28358 			case UNDEFINED:
28359 			case UNDOFILE:
28360 			case UNDO_BUFFER_SIZE:
28361 			case UNICODE:
28362 			case UNINSTALL:
28363 			case UNKNOWN:
28364 			case UNTIL:
28365 			case UPGRADE:
28366 			case USER:
28367 			case USER_RESOURCES:
28368 			case USE_FRM:
28369 			case UTC_DATE:
28370 			case UTC_TIME:
28371 			case UTC_TIMESTAMP:
28372 			case VALIDATION:
28373 			case VALUE:
28374 			case VARIABLES:
28375 			case VCPU:
28376 			case VIEW:
28377 			case VISIBLE:
28378 			case WAIT:
28379 			case WARNINGS:
28380 			case WEEK:
28381 			case WEIGHT_STRING:
28382 			case WITHOUT:
28383 			case WORK:
28384 			case WRAPPER:
28385 			case X509:
28386 			case XA:
28387 			case XID:
28388 			case XML:
28389 			case YEAR:
28390 			case YEAR_MONTH:
28391 			case SINGLE_QUOTED_TEXT:
28392 			case DOUBLE_QUOTED_TEXT:
28393 			case BQUOTA_STRING:
28394 			case UNDERSCORE_CHARSET:
28395 			case IDENTIFIER_:
28396 			case IP_ADDRESS:
28397 				{
28398 				setState(2776);
28399 				collationName();
28400 				}
28401 				break;
28402 			case QUESTION_:
28403 				{
28404 				setState(2777);
28405 				parameterMarker();
28406 				}
28407 				break;
28408 			default:
28409 				throw new NoViableAltException(this);
28410 			}
28411 			}
28412 		}
28413 		catch (RecognitionException re) {
28414 			_localctx.exception = re;
28415 			_errHandler.reportError(this, re);
28416 			_errHandler.recover(this, re);
28417 		}
28418 		finally {
28419 			exitRule();
28420 		}
28421 		return _localctx;
28422 	}
28423 
28424 	public static class FieldOrVarSpecContext extends ParserRuleContext {
28425 		public TerminalNode LP_() { return getToken(HiveStatementParser.LP_, 0); }
28426 		public TerminalNode RP_() { return getToken(HiveStatementParser.RP_, 0); }
28427 		public List<IdentifierContext> identifier() {
28428 			return getRuleContexts(IdentifierContext.class);
28429 		}
28430 		public IdentifierContext identifier(int i) {
28431 			return getRuleContext(IdentifierContext.class,i);
28432 		}
28433 		public List<TerminalNode> COMMA_() { return getTokens(HiveStatementParser.COMMA_); }
28434 		public TerminalNode COMMA_(int i) {
28435 			return getToken(HiveStatementParser.COMMA_, i);
28436 		}
28437 		public FieldOrVarSpecContext(ParserRuleContext parent, int invokingState) {
28438 			super(parent, invokingState);
28439 		}
28440 		@Override public int getRuleIndex() { return RULE_fieldOrVarSpec; }
28441 		@Override
28442 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28443 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitFieldOrVarSpec(this);
28444 			else return visitor.visitChildren(this);
28445 		}
28446 	}
28447 
28448 	public final FieldOrVarSpecContext fieldOrVarSpec() throws RecognitionException {
28449 		FieldOrVarSpecContext _localctx = new FieldOrVarSpecContext(_ctx, getState());
28450 		enterRule(_localctx, 480, RULE_fieldOrVarSpec);
28451 		int _la;
28452 		try {
28453 			enterOuterAlt(_localctx, 1);
28454 			{
28455 			setState(2780);
28456 			match(LP_);
28457 			setState(2789);
28458 			_errHandler.sync(this);
28459 			_la = _input.LA(1);
28460 			if (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (MAX - 47)) | (1L << (MIN - 47)) | (1L << (SUM - 47)) | (1L << (COUNT - 47)) | (1L << (GROUP_CONCAT - 47)) | (1L << (CAST - 47)) | (1L << (POSITION - 47)) | (1L << (SUBSTRING - 47)) | (1L << (SUBSTR - 47)) | (1L << (EXTRACT - 47)) | (1L << (TRIM - 47)) | (1L << (LAST_DAY - 47)) | (1L << (TRADITIONAL - 47)) | (1L << (TREE - 47)) | (1L << (MYSQL_MAIN - 47)) | (1L << (MYSQL_ADMIN - 47)) | (1L << (INSTANT - 47)) | (1L << (INPLACE - 47)) | (1L << (COPY - 47)) | (1L << (UL_BINARY - 47)) | (1L << (AUTOCOMMIT - 47)) | (1L << (INNODB - 47)) | (1L << (REDO_LOG - 47)) | (1L << (ACCOUNT - 47)) | (1L << (ACTION - 47)) | (1L << (ACTIVE - 47)) | (1L << (ADMIN - 47)) | (1L << (AFTER - 47)) | (1L << (AGAINST - 47)) | (1L << (AGGREGATE - 47)) | (1L << (ALGORITHM - 47)) | (1L << (ALWAYS - 47)) | (1L << (ANY - 47)) | (1L << (ARRAY - 47)) | (1L << (ASCII - 47)) | (1L << (AT - 47)) | (1L << (ATTRIBUTE - 47)) | (1L << (AUTOEXTEND_SIZE - 47)) | (1L << (AUTO_INCREMENT - 47)) | (1L << (AVG - 47)) | (1L << (BIT_XOR - 47)) | (1L << (AVG_ROW_LENGTH - 47)) | (1L << (BACKUP - 47)) | (1L << (BEGIN - 47)) | (1L << (BINLOG - 47)) | (1L << (BIT - 47)) | (1L << (BLOCK - 47)))) != 0) || ((((_la - 111)) & ~0x3f) == 0 && ((1L << (_la - 111)) & ((1L << (BOOL - 111)) | (1L << (BOOLEAN - 111)) | (1L << (BTREE - 111)) | (1L << (BUCKETS - 111)) | (1L << (BYTE - 111)) | (1L << (CACHE - 111)) | (1L << (CASCADED - 111)) | (1L << (CATALOG_NAME - 111)) | (1L << (CHAIN - 111)) | (1L << (CHANGED - 111)) | (1L << (CHANNEL - 111)) | (1L << (CHARSET - 111)) | (1L << (CHECKSUM - 111)) | (1L << (CIPHER - 111)) | (1L << (CLASS_ORIGIN - 111)) | (1L << (CLIENT - 111)) | (1L << (CLONE - 111)) | (1L << (CLOSE - 111)) | (1L << (COALESCE - 111)) | (1L << (CODE - 111)) | (1L << (COLLATION - 111)) | (1L << (COLUMNS - 111)) | (1L << (COLUMN_FORMAT - 111)) | (1L << (COLUMN_NAME - 111)) | (1L << (COMMENT - 111)) | (1L << (COMMIT - 111)) | (1L << (COMMITTED - 111)) | (1L << (COMPACT - 111)) | (1L << (COMPLETION - 111)) | (1L << (COMPONENT - 111)) | (1L << (COMPRESSED - 111)) | (1L << (COMPRESSION - 111)) | (1L << (CONCURRENT - 111)) | (1L << (CONNECTION - 111)) | (1L << (CONSISTENT - 111)) | (1L << (CONSTRAINT_CATALOG - 111)) | (1L << (CONSTRAINT_NAME - 111)) | (1L << (CONSTRAINT_SCHEMA - 111)) | (1L << (CONTAINS - 111)) | (1L << (CONTEXT - 111)) | (1L << (CPU - 111)) | (1L << (CREATE - 111)) | (1L << (CURRENT - 111)))) != 0) || ((((_la - 179)) & ~0x3f) == 0 && ((1L << (_la - 179)) & ((1L << (CURSOR_NAME - 179)) | (1L << (DATA - 179)) | (1L << (DATAFILE - 179)) | (1L << (DATE - 179)) | (1L << (DATETIME - 179)) | (1L << (DAY - 179)) | (1L << (DAY_MINUTE - 179)) | (1L << (DEALLOCATE - 179)) | (1L << (DEFAULT_AUTH - 179)) | (1L << (DEFINER - 179)) | (1L << (DEFINITION - 179)) | (1L << (DELAY_KEY_WRITE - 179)) | (1L << (DESCRIPTION - 179)) | (1L << (DIAGNOSTICS - 179)) | (1L << (DIRECTORY - 179)) | (1L << (DISABLE - 179)) | (1L << (DISCARD - 179)) | (1L << (DISK - 179)) | (1L << (DO - 179)) | (1L << (DUMPFILE - 179)) | (1L << (DUPLICATE - 179)) | (1L << (DYNAMIC - 179)) | (1L << (ENABLE - 179)) | (1L << (ENCRYPTION - 179)) | (1L << (END - 179)) | (1L << (ENDS - 179)) | (1L << (ENFORCED - 179)) | (1L << (ENGINE - 179)) | (1L << (ENGINES - 179)) | (1L << (ENGINE_ATTRIBUTE - 179)) | (1L << (ENUM - 179)) | (1L << (ERROR - 179)) | (1L << (ERRORS - 179)) | (1L << (ESCAPE - 179)) | (1L << (EVENT - 179)) | (1L << (EVENTS - 179)) | (1L << (EVERY - 179)))) != 0) || ((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (EXCHANGE - 244)) | (1L << (EXCLUDE - 244)) | (1L << (EXECUTE - 244)) | (1L << (EXPANSION - 244)) | (1L << (EXPIRE - 244)) | (1L << (EXPORT - 244)) | (1L << (EXTENDED - 244)) | (1L << (EXTENT_SIZE - 244)) | (1L << (FAILED_LOGIN_ATTEMPTS - 244)) | (1L << (FAST - 244)) | (1L << (FAULTS - 244)) | (1L << (FILE - 244)) | (1L << (FILE_BLOCK_SIZE - 244)) | (1L << (FILTER - 244)) | (1L << (FIRST - 244)) | (1L << (FIXED - 244)) | (1L << (FLUSH - 244)) | (1L << (FOLLOWING - 244)) | (1L << (FOLLOWS - 244)) | (1L << (FORMAT - 244)) | (1L << (FOUND - 244)) | (1L << (FULL - 244)) | (1L << (GENERAL - 244)) | (1L << (GEOMETRY - 244)) | (1L << (GEOMETRYCOLLECTION - 244)) | (1L << (GET_FORMAT - 244)) | (1L << (GET_MASTER_PUBLIC_KEY - 244)) | (1L << (GLOBAL - 244)) | (1L << (GRANTS - 244)) | (1L << (GROUP_REPLICATION - 244)) | (1L << (HANDLER - 244)) | (1L << (HASH - 244)) | (1L << (HELP - 244)) | (1L << (HISTOGRAM - 244)) | (1L << (HISTORY - 244)) | (1L << (HOST - 244)) | (1L << (HOSTS - 244)))) != 0) || ((((_la - 308)) & ~0x3f) == 0 && ((1L << (_la - 308)) & ((1L << (HOUR - 308)) | (1L << (IDENTIFIED - 308)) | (1L << (IGNORE_SERVER_IDS - 308)) | (1L << (IMPORT - 308)) | (1L << (INACTIVE - 308)) | (1L << (INDEXES - 308)) | (1L << (INITIAL_SIZE - 308)) | (1L << (INSERT_METHOD - 308)) | (1L << (INSTALL - 308)) | (1L << (INSTANCE - 308)) | (1L << (INVISIBLE - 308)) | (1L << (INVOKER - 308)) | (1L << (IO - 308)) | (1L << (IPC - 308)) | (1L << (ISOLATION - 308)) | (1L << (ISSUER - 308)) | (1L << (JSON - 308)) | (1L << (JSON_VALUE - 308)) | (1L << (KEY - 308)) | (1L << (KEY_BLOCK_SIZE - 308)) | (1L << (LANGUAGE - 308)) | (1L << (LAST - 308)) | (1L << (LAST_VALUE - 308)) | (1L << (LEAVES - 308)) | (1L << (LESS - 308)) | (1L << (LEVEL - 308)))) != 0) || ((((_la - 373)) & ~0x3f) == 0 && ((1L << (_la - 373)) & ((1L << (LINESTRING - 373)) | (1L << (LIST - 373)) | (1L << (LOCAL - 373)) | (1L << (LOCKED - 373)) | (1L << (LOCKS - 373)) | (1L << (LOGFILE - 373)) | (1L << (LOGS - 373)) | (1L << (MASTER - 373)) | (1L << (MASTER_AUTO_POSITION - 373)) | (1L << (MASTER_COMPRESSION_ALGORITHM - 373)) | (1L << (MASTER_CONNECT_RETRY - 373)) | (1L << (MASTER_DELAY - 373)) | (1L << (MASTER_HEARTBEAT_PERIOD - 373)) | (1L << (MASTER_HOST - 373)) | (1L << (MASTER_LOG_FILE - 373)) | (1L << (MASTER_LOG_POS - 373)) | (1L << (MASTER_PASSWORD - 373)) | (1L << (MASTER_PORT - 373)) | (1L << (MASTER_PUBLIC_KEY_PATH - 373)) | (1L << (MASTER_RETRY_COUNT - 373)) | (1L << (MASTER_SERVER_ID - 373)) | (1L << (MASTER_SSL - 373)) | (1L << (MASTER_SSL_CA - 373)) | (1L << (MASTER_SSL_CAPATH - 373)) | (1L << (MASTER_SSL_CERT - 373)) | (1L << (MASTER_SSL_CIPHER - 373)) | (1L << (MASTER_SSL_CRL - 373)) | (1L << (MASTER_SSL_CRLPATH - 373)) | (1L << (MASTER_SSL_KEY - 373)) | (1L << (MASTER_TLS_CIPHERSUITES - 373)) | (1L << (MASTER_TLS_VERSION - 373)) | (1L << (MASTER_USER - 373)) | (1L << (MASTER_ZSTD_COMPRESSION_LEVEL - 373)) | (1L << (MAXVALUE - 373)) | (1L << (MAX_CONNECTIONS_PER_HOUR - 373)) | (1L << (MAX_QUERIES_PER_HOUR - 373)) | (1L << (MAX_ROWS - 373)) | (1L << (MAX_SIZE - 373)) | (1L << (MAX_UPDATES_PER_HOUR - 373)) | (1L << (MAX_USER_CONNECTIONS - 373)) | (1L << (MEDIUM - 373)) | (1L << (MEMBER - 373)) | (1L << (MEMORY - 373)) | (1L << (MERGE - 373)) | (1L << (MESSAGE_TEXT - 373)) | (1L << (MICROSECOND - 373)))) != 0) || ((((_la - 437)) & ~0x3f) == 0 && ((1L << (_la - 437)) & ((1L << (MIGRATE - 437)) | (1L << (MINUTE - 437)) | (1L << (MIN_ROWS - 437)) | (1L << (MODE - 437)) | (1L << (MODIFY - 437)) | (1L << (MONTH - 437)) | (1L << (MULTILINESTRING - 437)) | (1L << (MULTIPOINT - 437)) | (1L << (MULTIPOLYGON - 437)) | (1L << (MUTEX - 437)) | (1L << (MYSQL_ERRNO - 437)) | (1L << (NAME - 437)) | (1L << (NAMES - 437)) | (1L << (NATIONAL - 437)) | (1L << (NCHAR - 437)) | (1L << (NDBCLUSTER - 437)) | (1L << (NESTED - 437)) | (1L << (NETWORK_NAMESPACE - 437)) | (1L << (NEVER - 437)) | (1L << (NEW - 437)) | (1L << (NEXT - 437)) | (1L << (NO - 437)) | (1L << (NODEGROUP - 437)) | (1L << (NONE - 437)) | (1L << (NOWAIT - 437)) | (1L << (NO_WAIT - 437)) | (1L << (NULLS - 437)) | (1L << (NUMBER - 437)) | (1L << (NVARCHAR - 437)) | (1L << (OFF - 437)) | (1L << (OFFSET - 437)) | (1L << (OJ - 437)) | (1L << (OLD - 437)) | (1L << (ONE - 437)) | (1L << (ONLY - 437)) | (1L << (OPEN - 437)) | (1L << (OPTIONAL - 437)) | (1L << (OPTIONS - 437)) | (1L << (ORDINALITY - 437)) | (1L << (ORGANIZATION - 437)) | (1L << (OTHERS - 437)))) != 0) || ((((_la - 505)) & ~0x3f) == 0 && ((1L << (_la - 505)) & ((1L << (OWNER - 505)) | (1L << (PACK_KEYS - 505)) | (1L << (PAGE - 505)) | (1L << (PARSER - 505)) | (1L << (PARTIAL - 505)) | (1L << (PARTITIONING - 505)) | (1L << (PARTITIONS - 505)) | (1L << (PASSWORD - 505)) | (1L << (PASSWORD_LOCK_TIME - 505)) | (1L << (PATH - 505)) | (1L << (PERSIST - 505)) | (1L << (PERSIST_ONLY - 505)) | (1L << (PHASE - 505)) | (1L << (PLUGIN - 505)) | (1L << (PLUGINS - 505)) | (1L << (PLUGIN_DIR - 505)) | (1L << (POINT - 505)) | (1L << (POLYGON - 505)) | (1L << (PORT - 505)) | (1L << (PRECEDES - 505)) | (1L << (PRECEDING - 505)) | (1L << (PREPARE - 505)) | (1L << (PRESERVE - 505)) | (1L << (PREV - 505)) | (1L << (PRIMARY - 505)) | (1L << (PRIVILEGES - 505)) | (1L << (PRIVILEGE_CHECKS_USER - 505)) | (1L << (PROCESS - 505)) | (1L << (PROCESSLIST - 505)) | (1L << (PROFILE - 505)) | (1L << (PROFILES - 505)) | (1L << (PROXY - 505)) | (1L << (QUARTER - 505)) | (1L << (QUERY - 505)) | (1L << (QUICK - 505)) | (1L << (RANDOM - 505)) | (1L << (READ_ONLY - 505)) | (1L << (REBUILD - 505)) | (1L << (RECOVER - 505)) | (1L << (REDO_BUFFER_SIZE - 505)) | (1L << (REDUNDANT - 505)) | (1L << (REFERENCE - 505)) | (1L << (RELAY - 505)) | (1L << (RELAYLOG - 505)) | (1L << (RELAY_LOG_FILE - 505)) | (1L << (RELAY_LOG_POS - 505)) | (1L << (RELAY_THREAD - 505)) | (1L << (RELOAD - 505)) | (1L << (REMOVE - 505)))) != 0) || ((((_la - 570)) & ~0x3f) == 0 && ((1L << (_la - 570)) & ((1L << (REORGANIZE - 570)) | (1L << (REPAIR - 570)) | (1L << (REPEATABLE - 570)) | (1L << (REPLICATE_DO_DB - 570)) | (1L << (REPLICATE_DO_TABLE - 570)) | (1L << (REPLICATE_IGNORE_DB - 570)) | (1L << (REPLICATE_IGNORE_TABLE - 570)) | (1L << (REPLICATE_REWRITE_DB - 570)) | (1L << (REPLICATE_WILD_DO_TABLE - 570)) | (1L << (REPLICATE_WILD_IGNORE_TABLE - 570)) | (1L << (REPLICATION - 570)) | (1L << (REQUIRE_ROW_FORMAT - 570)) | (1L << (RESET - 570)) | (1L << (RESOURCE - 570)) | (1L << (RESPECT - 570)) | (1L << (RESTART - 570)) | (1L << (RESTORE - 570)) | (1L << (RESUME - 570)) | (1L << (RETAIN - 570)) | (1L << (RETURNED_SQLSTATE - 570)) | (1L << (RETURNING - 570)) | (1L << (RETURNS - 570)) | (1L << (REUSE - 570)) | (1L << (REVERSE - 570)) | (1L << (ROLE - 570)) | (1L << (ROLLBACK - 570)) | (1L << (ROLLUP - 570)) | (1L << (ROTATE - 570)) | (1L << (ROUTINE - 570)) | (1L << (ROW_COUNT - 570)) | (1L << (ROW_FORMAT - 570)) | (1L << (RTREE - 570)) | (1L << (SAVEPOINT - 570)) | (1L << (SCHEDULE - 570)) | (1L << (SCHEMA_NAME - 570)) | (1L << (SECOND - 570)) | (1L << (SECONDARY - 570)) | (1L << (SECONDARY_ENGINE - 570)) | (1L << (SECONDARY_ENGINE_ATTRIBUTE - 570)) | (1L << (SECONDARY_LOAD - 570)) | (1L << (SECONDARY_UNLOAD - 570)) | (1L << (SECURITY - 570)) | (1L << (SERIAL - 570)))) != 0) || ((((_la - 634)) & ~0x3f) == 0 && ((1L << (_la - 634)) & ((1L << (SERIALIZABLE - 634)) | (1L << (SERVER - 634)) | (1L << (SESSION - 634)) | (1L << (SHARE - 634)) | (1L << (SHUTDOWN - 634)) | (1L << (SIGNED - 634)) | (1L << (SIMPLE - 634)) | (1L << (SLAVE - 634)) | (1L << (SLOW - 634)) | (1L << (SNAPSHOT - 634)) | (1L << (SOCKET - 634)) | (1L << (SONAME - 634)) | (1L << (SOUNDS - 634)) | (1L << (SOURCE - 634)) | (1L << (SQL_AFTER_GTIDS - 634)) | (1L << (SQL_AFTER_MTS_GAPS - 634)) | (1L << (SQL_BEFORE_GTIDS - 634)) | (1L << (SQL_BUFFER_RESULT - 634)) | (1L << (SQL_NO_CACHE - 634)) | (1L << (SQL_THREAD - 634)) | (1L << (SRID - 634)) | (1L << (STACKED - 634)) | (1L << (START - 634)) | (1L << (STARTS - 634)) | (1L << (STATS_AUTO_RECALC - 634)) | (1L << (STATS_PERSISTENT - 634)) | (1L << (STATS_SAMPLE_PAGES - 634)) | (1L << (STATUS - 634)) | (1L << (STOP - 634)) | (1L << (STORAGE - 634)) | (1L << (STREAM - 634)) | (1L << (STRING - 634)) | (1L << (SUBCLASS_ORIGIN - 634)) | (1L << (SUBJECT - 634)) | (1L << (SUBPARTITION - 634)) | (1L << (SUBPARTITIONS - 634)) | (1L << (SUPER - 634)) | (1L << (SUSPEND - 634)) | (1L << (SWAPS - 634)) | (1L << (SWITCHES - 634)) | (1L << (SYSTEM - 634)))) != 0) || ((((_la - 722)) & ~0x3f) == 0 && ((1L << (_la - 722)) & ((1L << (TABLE - 722)) | (1L << (TABLES - 722)) | (1L << (TABLESPACE - 722)) | (1L << (TABLE_CHECKSUM - 722)) | (1L << (TABLE_NAME - 722)) | (1L << (TEMPORARY - 722)) | (1L << (TEMPTABLE - 722)) | (1L << (TEXT - 722)) | (1L << (THAN - 722)) | (1L << (THREAD_PRIORITY - 722)) | (1L << (TIES - 722)) | (1L << (TIME - 722)) | (1L << (TIMESTAMP - 722)) | (1L << (TIMESTAMP_ADD - 722)) | (1L << (TIMESTAMP_DIFF - 722)) | (1L << (TLS - 722)) | (1L << (TRANSACTION - 722)) | (1L << (TRIGGERS - 722)) | (1L << (TRUNCATE - 722)) | (1L << (TYPE - 722)) | (1L << (TYPES - 722)) | (1L << (UNBOUNDED - 722)) | (1L << (UNCOMMITTED - 722)) | (1L << (UNDEFINED - 722)) | (1L << (UNDOFILE - 722)) | (1L << (UNDO_BUFFER_SIZE - 722)) | (1L << (UNICODE - 722)) | (1L << (UNINSTALL - 722)) | (1L << (UNKNOWN - 722)) | (1L << (UNTIL - 722)) | (1L << (UPGRADE - 722)) | (1L << (USER - 722)) | (1L << (USER_RESOURCES - 722)) | (1L << (USE_FRM - 722)) | (1L << (UTC_DATE - 722)) | (1L << (UTC_TIME - 722)) | (1L << (UTC_TIMESTAMP - 722)) | (1L << (VALIDATION - 722)) | (1L << (VALUE - 722)) | (1L << (VARIABLES - 722)))) != 0) || ((((_la - 787)) & ~0x3f) == 0 && ((1L << (_la - 787)) & ((1L << (VCPU - 787)) | (1L << (VIEW - 787)) | (1L << (VISIBLE - 787)) | (1L << (WAIT - 787)) | (1L << (WARNINGS - 787)) | (1L << (WEEK - 787)) | (1L << (WEIGHT_STRING - 787)) | (1L << (WITHOUT - 787)) | (1L << (WORK - 787)) | (1L << (WRAPPER - 787)) | (1L << (X509 - 787)) | (1L << (XA - 787)) | (1L << (XID - 787)) | (1L << (XML - 787)) | (1L << (YEAR - 787)) | (1L << (YEAR_MONTH - 787)) | (1L << (DOUBLE_QUOTED_TEXT - 787)) | (1L << (BQUOTA_STRING - 787)) | (1L << (UNDERSCORE_CHARSET - 787)))) != 0) || _la==IDENTIFIER_) {
28461 				{
28462 				setState(2781);
28463 				identifier();
28464 				setState(2786);
28465 				_errHandler.sync(this);
28466 				_la = _input.LA(1);
28467 				while (_la==COMMA_) {
28468 					{
28469 					{
28470 					setState(2782);
28471 					match(COMMA_);
28472 					setState(2783);
28473 					identifier();
28474 					}
28475 					}
28476 					setState(2788);
28477 					_errHandler.sync(this);
28478 					_la = _input.LA(1);
28479 				}
28480 				}
28481 			}
28482 
28483 			setState(2791);
28484 			match(RP_);
28485 			}
28486 		}
28487 		catch (RecognitionException re) {
28488 			_localctx.exception = re;
28489 			_errHandler.reportError(this, re);
28490 			_errHandler.recover(this, re);
28491 		}
28492 		finally {
28493 			exitRule();
28494 		}
28495 		return _localctx;
28496 	}
28497 
28498 	public static class IfNotExistsContext extends ParserRuleContext {
28499 		public TerminalNode IF() { return getToken(HiveStatementParser.IF, 0); }
28500 		public TerminalNode NOT() { return getToken(HiveStatementParser.NOT, 0); }
28501 		public TerminalNode EXISTS() { return getToken(HiveStatementParser.EXISTS, 0); }
28502 		public IfNotExistsContext(ParserRuleContext parent, int invokingState) {
28503 			super(parent, invokingState);
28504 		}
28505 		@Override public int getRuleIndex() { return RULE_ifNotExists; }
28506 		@Override
28507 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28508 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIfNotExists(this);
28509 			else return visitor.visitChildren(this);
28510 		}
28511 	}
28512 
28513 	public final IfNotExistsContext ifNotExists() throws RecognitionException {
28514 		IfNotExistsContext _localctx = new IfNotExistsContext(_ctx, getState());
28515 		enterRule(_localctx, 482, RULE_ifNotExists);
28516 		try {
28517 			enterOuterAlt(_localctx, 1);
28518 			{
28519 			setState(2793);
28520 			match(IF);
28521 			setState(2794);
28522 			match(NOT);
28523 			setState(2795);
28524 			match(EXISTS);
28525 			}
28526 		}
28527 		catch (RecognitionException re) {
28528 			_localctx.exception = re;
28529 			_errHandler.reportError(this, re);
28530 			_errHandler.recover(this, re);
28531 		}
28532 		finally {
28533 			exitRule();
28534 		}
28535 		return _localctx;
28536 	}
28537 
28538 	public static class IfExistsContext extends ParserRuleContext {
28539 		public TerminalNode IF() { return getToken(HiveStatementParser.IF, 0); }
28540 		public TerminalNode EXISTS() { return getToken(HiveStatementParser.EXISTS, 0); }
28541 		public IfExistsContext(ParserRuleContext parent, int invokingState) {
28542 			super(parent, invokingState);
28543 		}
28544 		@Override public int getRuleIndex() { return RULE_ifExists; }
28545 		@Override
28546 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28547 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitIfExists(this);
28548 			else return visitor.visitChildren(this);
28549 		}
28550 	}
28551 
28552 	public final IfExistsContext ifExists() throws RecognitionException {
28553 		IfExistsContext _localctx = new IfExistsContext(_ctx, getState());
28554 		enterRule(_localctx, 484, RULE_ifExists);
28555 		try {
28556 			enterOuterAlt(_localctx, 1);
28557 			{
28558 			setState(2797);
28559 			match(IF);
28560 			setState(2798);
28561 			match(EXISTS);
28562 			}
28563 		}
28564 		catch (RecognitionException re) {
28565 			_localctx.exception = re;
28566 			_errHandler.reportError(this, re);
28567 			_errHandler.recover(this, re);
28568 		}
28569 		finally {
28570 			exitRule();
28571 		}
28572 		return _localctx;
28573 	}
28574 
28575 	public static class ConnectionIdContext extends ParserRuleContext {
28576 		public TerminalNode NUMBER_() { return getToken(HiveStatementParser.NUMBER_, 0); }
28577 		public ConnectionIdContext(ParserRuleContext parent, int invokingState) {
28578 			super(parent, invokingState);
28579 		}
28580 		@Override public int getRuleIndex() { return RULE_connectionId; }
28581 		@Override
28582 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28583 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitConnectionId(this);
28584 			else return visitor.visitChildren(this);
28585 		}
28586 	}
28587 
28588 	public final ConnectionIdContext connectionId() throws RecognitionException {
28589 		ConnectionIdContext _localctx = new ConnectionIdContext(_ctx, getState());
28590 		enterRule(_localctx, 486, RULE_connectionId);
28591 		try {
28592 			enterOuterAlt(_localctx, 1);
28593 			{
28594 			setState(2800);
28595 			match(NUMBER_);
28596 			}
28597 		}
28598 		catch (RecognitionException re) {
28599 			_localctx.exception = re;
28600 			_errHandler.reportError(this, re);
28601 			_errHandler.recover(this, re);
28602 		}
28603 		finally {
28604 			exitRule();
28605 		}
28606 		return _localctx;
28607 	}
28608 
28609 	public static class LabelNameContext extends ParserRuleContext {
28610 		public IdentifierContext identifier() {
28611 			return getRuleContext(IdentifierContext.class,0);
28612 		}
28613 		public LabelNameContext(ParserRuleContext parent, int invokingState) {
28614 			super(parent, invokingState);
28615 		}
28616 		@Override public int getRuleIndex() { return RULE_labelName; }
28617 		@Override
28618 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28619 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitLabelName(this);
28620 			else return visitor.visitChildren(this);
28621 		}
28622 	}
28623 
28624 	public final LabelNameContext labelName() throws RecognitionException {
28625 		LabelNameContext _localctx = new LabelNameContext(_ctx, getState());
28626 		enterRule(_localctx, 488, RULE_labelName);
28627 		try {
28628 			enterOuterAlt(_localctx, 1);
28629 			{
28630 			setState(2802);
28631 			identifier();
28632 			}
28633 		}
28634 		catch (RecognitionException re) {
28635 			_localctx.exception = re;
28636 			_errHandler.reportError(this, re);
28637 			_errHandler.recover(this, re);
28638 		}
28639 		finally {
28640 			exitRule();
28641 		}
28642 		return _localctx;
28643 	}
28644 
28645 	public static class CursorNameContext extends ParserRuleContext {
28646 		public IdentifierContext identifier() {
28647 			return getRuleContext(IdentifierContext.class,0);
28648 		}
28649 		public CursorNameContext(ParserRuleContext parent, int invokingState) {
28650 			super(parent, invokingState);
28651 		}
28652 		@Override public int getRuleIndex() { return RULE_cursorName; }
28653 		@Override
28654 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28655 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCursorName(this);
28656 			else return visitor.visitChildren(this);
28657 		}
28658 	}
28659 
28660 	public final CursorNameContext cursorName() throws RecognitionException {
28661 		CursorNameContext _localctx = new CursorNameContext(_ctx, getState());
28662 		enterRule(_localctx, 490, RULE_cursorName);
28663 		try {
28664 			enterOuterAlt(_localctx, 1);
28665 			{
28666 			setState(2804);
28667 			identifier();
28668 			}
28669 		}
28670 		catch (RecognitionException re) {
28671 			_localctx.exception = re;
28672 			_errHandler.reportError(this, re);
28673 			_errHandler.recover(this, re);
28674 		}
28675 		finally {
28676 			exitRule();
28677 		}
28678 		return _localctx;
28679 	}
28680 
28681 	public static class ConditionNameContext extends ParserRuleContext {
28682 		public IdentifierContext identifier() {
28683 			return getRuleContext(IdentifierContext.class,0);
28684 		}
28685 		public ConditionNameContext(ParserRuleContext parent, int invokingState) {
28686 			super(parent, invokingState);
28687 		}
28688 		@Override public int getRuleIndex() { return RULE_conditionName; }
28689 		@Override
28690 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28691 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitConditionName(this);
28692 			else return visitor.visitChildren(this);
28693 		}
28694 	}
28695 
28696 	public final ConditionNameContext conditionName() throws RecognitionException {
28697 		ConditionNameContext _localctx = new ConditionNameContext(_ctx, getState());
28698 		enterRule(_localctx, 492, RULE_conditionName);
28699 		try {
28700 			enterOuterAlt(_localctx, 1);
28701 			{
28702 			setState(2806);
28703 			identifier();
28704 			}
28705 		}
28706 		catch (RecognitionException re) {
28707 			_localctx.exception = re;
28708 			_errHandler.reportError(this, re);
28709 			_errHandler.recover(this, re);
28710 		}
28711 		finally {
28712 			exitRule();
28713 		}
28714 		return _localctx;
28715 	}
28716 
28717 	public static class CombineOptionContext extends ParserRuleContext {
28718 		public TerminalNode ALL() { return getToken(HiveStatementParser.ALL, 0); }
28719 		public TerminalNode DISTINCT() { return getToken(HiveStatementParser.DISTINCT, 0); }
28720 		public CombineOptionContext(ParserRuleContext parent, int invokingState) {
28721 			super(parent, invokingState);
28722 		}
28723 		@Override public int getRuleIndex() { return RULE_combineOption; }
28724 		@Override
28725 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28726 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitCombineOption(this);
28727 			else return visitor.visitChildren(this);
28728 		}
28729 	}
28730 
28731 	public final CombineOptionContext combineOption() throws RecognitionException {
28732 		CombineOptionContext _localctx = new CombineOptionContext(_ctx, getState());
28733 		enterRule(_localctx, 494, RULE_combineOption);
28734 		int _la;
28735 		try {
28736 			enterOuterAlt(_localctx, 1);
28737 			{
28738 			setState(2808);
28739 			_la = _input.LA(1);
28740 			if ( !(_la==ALL || _la==DISTINCT) ) {
28741 			_errHandler.recoverInline(this);
28742 			}
28743 			else {
28744 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
28745 				_errHandler.reportMatch(this);
28746 				consume();
28747 			}
28748 			}
28749 		}
28750 		catch (RecognitionException re) {
28751 			_localctx.exception = re;
28752 			_errHandler.reportError(this, re);
28753 			_errHandler.recover(this, re);
28754 		}
28755 		finally {
28756 			exitRule();
28757 		}
28758 		return _localctx;
28759 	}
28760 
28761 	public static class NoWriteToBinLogContext extends ParserRuleContext {
28762 		public TerminalNode LOCAL() { return getToken(HiveStatementParser.LOCAL, 0); }
28763 		public TerminalNode NO_WRITE_TO_BINLOG() { return getToken(HiveStatementParser.NO_WRITE_TO_BINLOG, 0); }
28764 		public NoWriteToBinLogContext(ParserRuleContext parent, int invokingState) {
28765 			super(parent, invokingState);
28766 		}
28767 		@Override public int getRuleIndex() { return RULE_noWriteToBinLog; }
28768 		@Override
28769 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28770 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitNoWriteToBinLog(this);
28771 			else return visitor.visitChildren(this);
28772 		}
28773 	}
28774 
28775 	public final NoWriteToBinLogContext noWriteToBinLog() throws RecognitionException {
28776 		NoWriteToBinLogContext _localctx = new NoWriteToBinLogContext(_ctx, getState());
28777 		enterRule(_localctx, 496, RULE_noWriteToBinLog);
28778 		int _la;
28779 		try {
28780 			enterOuterAlt(_localctx, 1);
28781 			{
28782 			setState(2810);
28783 			_la = _input.LA(1);
28784 			if ( !(_la==LOCAL || _la==NO_WRITE_TO_BINLOG) ) {
28785 			_errHandler.recoverInline(this);
28786 			}
28787 			else {
28788 				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
28789 				_errHandler.reportMatch(this);
28790 				consume();
28791 			}
28792 			}
28793 		}
28794 		catch (RecognitionException re) {
28795 			_localctx.exception = re;
28796 			_errHandler.reportError(this, re);
28797 			_errHandler.recover(this, re);
28798 		}
28799 		finally {
28800 			exitRule();
28801 		}
28802 		return _localctx;
28803 	}
28804 
28805 	public static class ChannelOptionContext extends ParserRuleContext {
28806 		public TerminalNode FOR() { return getToken(HiveStatementParser.FOR, 0); }
28807 		public TerminalNode CHANNEL() { return getToken(HiveStatementParser.CHANNEL, 0); }
28808 		public String_Context string_() {
28809 			return getRuleContext(String_Context.class,0);
28810 		}
28811 		public ChannelOptionContext(ParserRuleContext parent, int invokingState) {
28812 			super(parent, invokingState);
28813 		}
28814 		@Override public int getRuleIndex() { return RULE_channelOption; }
28815 		@Override
28816 		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
28817 			if ( visitor instanceof HiveStatementVisitor ) return ((HiveStatementVisitor<? extends T>)visitor).visitChannelOption(this);
28818 			else return visitor.visitChildren(this);
28819 		}
28820 	}
28821 
28822 	public final ChannelOptionContext channelOption() throws RecognitionException {
28823 		ChannelOptionContext _localctx = new ChannelOptionContext(_ctx, getState());
28824 		enterRule(_localctx, 498, RULE_channelOption);
28825 		try {
28826 			enterOuterAlt(_localctx, 1);
28827 			{
28828 			setState(2812);
28829 			match(FOR);
28830 			setState(2813);
28831 			match(CHANNEL);
28832 			setState(2814);
28833 			string_();
28834 			}
28835 		}
28836 		catch (RecognitionException re) {
28837 			_localctx.exception = re;
28838 			_errHandler.reportError(this, re);
28839 			_errHandler.recover(this, re);
28840 		}
28841 		finally {
28842 			exitRule();
28843 		}
28844 		return _localctx;
28845 	}
28846 
28847 	public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
28848 		switch (ruleIndex) {
28849 		case 25:
28850 			return queryExpressionBody_sempred((QueryExpressionBodyContext)_localctx, predIndex);
28851 		case 154:
28852 			return expr_sempred((ExprContext)_localctx, predIndex);
28853 		case 158:
28854 			return booleanPrimary_sempred((BooleanPrimaryContext)_localctx, predIndex);
28855 		case 162:
28856 			return bitExpr_sempred((BitExprContext)_localctx, predIndex);
28857 		case 163:
28858 			return simpleExpr_sempred((SimpleExprContext)_localctx, predIndex);
28859 		}
28860 		return true;
28861 	}
28862 	private boolean queryExpressionBody_sempred(QueryExpressionBodyContext _localctx, int predIndex) {
28863 		switch (predIndex) {
28864 		case 0:
28865 			return precpred(_ctx, 1);
28866 		}
28867 		return true;
28868 	}
28869 	private boolean expr_sempred(ExprContext _localctx, int predIndex) {
28870 		switch (predIndex) {
28871 		case 1:
28872 			return precpred(_ctx, 4);
28873 		case 2:
28874 			return precpred(_ctx, 3);
28875 		case 3:
28876 			return precpred(_ctx, 2);
28877 		}
28878 		return true;
28879 	}
28880 	private boolean booleanPrimary_sempred(BooleanPrimaryContext _localctx, int predIndex) {
28881 		switch (predIndex) {
28882 		case 4:
28883 			return precpred(_ctx, 7);
28884 		case 5:
28885 			return precpred(_ctx, 6);
28886 		case 6:
28887 			return precpred(_ctx, 5);
28888 		case 7:
28889 			return precpred(_ctx, 4);
28890 		case 8:
28891 			return precpred(_ctx, 3);
28892 		case 9:
28893 			return precpred(_ctx, 2);
28894 		}
28895 		return true;
28896 	}
28897 	private boolean bitExpr_sempred(BitExprContext _localctx, int predIndex) {
28898 		switch (predIndex) {
28899 		case 10:
28900 			return precpred(_ctx, 15);
28901 		case 11:
28902 			return precpred(_ctx, 14);
28903 		case 12:
28904 			return precpred(_ctx, 13);
28905 		case 13:
28906 			return precpred(_ctx, 12);
28907 		case 14:
28908 			return precpred(_ctx, 11);
28909 		case 15:
28910 			return precpred(_ctx, 10);
28911 		case 16:
28912 			return precpred(_ctx, 9);
28913 		case 17:
28914 			return precpred(_ctx, 8);
28915 		case 18:
28916 			return precpred(_ctx, 7);
28917 		case 19:
28918 			return precpred(_ctx, 6);
28919 		case 20:
28920 			return precpred(_ctx, 5);
28921 		case 21:
28922 			return precpred(_ctx, 4);
28923 		case 22:
28924 			return precpred(_ctx, 3);
28925 		case 23:
28926 			return precpred(_ctx, 2);
28927 		}
28928 		return true;
28929 	}
28930 	private boolean simpleExpr_sempred(SimpleExprContext _localctx, int predIndex) {
28931 		switch (predIndex) {
28932 		case 24:
28933 			return precpred(_ctx, 10);
28934 		case 25:
28935 			return precpred(_ctx, 12);
28936 		}
28937 		return true;
28938 	}
28939 
28940 	private static final String _serializedATNSegment0 =
28941 		"\u0004\u0001\u0357\u0b01\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001"+
28942 		"\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004"+
28943 		"\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007"+
28944 		"\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b"+
28945 		"\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007"+
28946 		"\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007"+
28947 		"\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007"+
28948 		"\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007"+
28949 		"\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007"+
28950 		"\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007"+
28951 		"\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007"+
28952 		"\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007"+
28953 		"\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007"+
28954 		",\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u0007"+
28955 		"1\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u0007"+
28956 		"6\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007"+
28957 		";\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007"+
28958 		"@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007"+
28959 		"E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007"+
28960 		"J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007"+
28961 		"O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007"+
28962 		"T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007"+
28963 		"Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007"+
28964 		"^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007"+
28965 		"c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007"+
28966 		"h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007"+
28967 		"m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007"+
28968 		"r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007"+
28969 		"w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007"+
28970 		"|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007"+
28971 		"\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007"+
28972 		"\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007"+
28973 		"\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007"+
28974 		"\u0089\u0002\u008a\u0007\u008a\u0002\u008b\u0007\u008b\u0002\u008c\u0007"+
28975 		"\u008c\u0002\u008d\u0007\u008d\u0002\u008e\u0007\u008e\u0002\u008f\u0007"+
28976 		"\u008f\u0002\u0090\u0007\u0090\u0002\u0091\u0007\u0091\u0002\u0092\u0007"+
28977 		"\u0092\u0002\u0093\u0007\u0093\u0002\u0094\u0007\u0094\u0002\u0095\u0007"+
28978 		"\u0095\u0002\u0096\u0007\u0096\u0002\u0097\u0007\u0097\u0002\u0098\u0007"+
28979 		"\u0098\u0002\u0099\u0007\u0099\u0002\u009a\u0007\u009a\u0002\u009b\u0007"+
28980 		"\u009b\u0002\u009c\u0007\u009c\u0002\u009d\u0007\u009d\u0002\u009e\u0007"+
28981 		"\u009e\u0002\u009f\u0007\u009f\u0002\u00a0\u0007\u00a0\u0002\u00a1\u0007"+
28982 		"\u00a1\u0002\u00a2\u0007\u00a2\u0002\u00a3\u0007\u00a3\u0002\u00a4\u0007"+
28983 		"\u00a4\u0002\u00a5\u0007\u00a5\u0002\u00a6\u0007\u00a6\u0002\u00a7\u0007"+
28984 		"\u00a7\u0002\u00a8\u0007\u00a8\u0002\u00a9\u0007\u00a9\u0002\u00aa\u0007"+
28985 		"\u00aa\u0002\u00ab\u0007\u00ab\u0002\u00ac\u0007\u00ac\u0002\u00ad\u0007"+
28986 		"\u00ad\u0002\u00ae\u0007\u00ae\u0002\u00af\u0007\u00af\u0002\u00b0\u0007"+
28987 		"\u00b0\u0002\u00b1\u0007\u00b1\u0002\u00b2\u0007\u00b2\u0002\u00b3\u0007"+
28988 		"\u00b3\u0002\u00b4\u0007\u00b4\u0002\u00b5\u0007\u00b5\u0002\u00b6\u0007"+
28989 		"\u00b6\u0002\u00b7\u0007\u00b7\u0002\u00b8\u0007\u00b8\u0002\u00b9\u0007"+
28990 		"\u00b9\u0002\u00ba\u0007\u00ba\u0002\u00bb\u0007\u00bb\u0002\u00bc\u0007"+
28991 		"\u00bc\u0002\u00bd\u0007\u00bd\u0002\u00be\u0007\u00be\u0002\u00bf\u0007"+
28992 		"\u00bf\u0002\u00c0\u0007\u00c0\u0002\u00c1\u0007\u00c1\u0002\u00c2\u0007"+
28993 		"\u00c2\u0002\u00c3\u0007\u00c3\u0002\u00c4\u0007\u00c4\u0002\u00c5\u0007"+
28994 		"\u00c5\u0002\u00c6\u0007\u00c6\u0002\u00c7\u0007\u00c7\u0002\u00c8\u0007"+
28995 		"\u00c8\u0002\u00c9\u0007\u00c9\u0002\u00ca\u0007\u00ca\u0002\u00cb\u0007"+
28996 		"\u00cb\u0002\u00cc\u0007\u00cc\u0002\u00cd\u0007\u00cd\u0002\u00ce\u0007"+
28997 		"\u00ce\u0002\u00cf\u0007\u00cf\u0002\u00d0\u0007\u00d0\u0002\u00d1\u0007"+
28998 		"\u00d1\u0002\u00d2\u0007\u00d2\u0002\u00d3\u0007\u00d3\u0002\u00d4\u0007"+
28999 		"\u00d4\u0002\u00d5\u0007\u00d5\u0002\u00d6\u0007\u00d6\u0002\u00d7\u0007"+
29000 		"\u00d7\u0002\u00d8\u0007\u00d8\u0002\u00d9\u0007\u00d9\u0002\u00da\u0007"+
29001 		"\u00da\u0002\u00db\u0007\u00db\u0002\u00dc\u0007\u00dc\u0002\u00dd\u0007"+
29002 		"\u00dd\u0002\u00de\u0007\u00de\u0002\u00df\u0007\u00df\u0002\u00e0\u0007"+
29003 		"\u00e0\u0002\u00e1\u0007\u00e1\u0002\u00e2\u0007\u00e2\u0002\u00e3\u0007"+
29004 		"\u00e3\u0002\u00e4\u0007\u00e4\u0002\u00e5\u0007\u00e5\u0002\u00e6\u0007"+
29005 		"\u00e6\u0002\u00e7\u0007\u00e7\u0002\u00e8\u0007\u00e8\u0002\u00e9\u0007"+
29006 		"\u00e9\u0002\u00ea\u0007\u00ea\u0002\u00eb\u0007\u00eb\u0002\u00ec\u0007"+
29007 		"\u00ec\u0002\u00ed\u0007\u00ed\u0002\u00ee\u0007\u00ee\u0002\u00ef\u0007"+
29008 		"\u00ef\u0002\u00f0\u0007\u00f0\u0002\u00f1\u0007\u00f1\u0002\u00f2\u0007"+
29009 		"\u00f2\u0002\u00f3\u0007\u00f3\u0002\u00f4\u0007\u00f4\u0002\u00f5\u0007"+
29010 		"\u00f5\u0002\u00f6\u0007\u00f6\u0002\u00f7\u0007\u00f7\u0002\u00f8\u0007"+
29011 		"\u00f8\u0002\u00f9\u0007\u00f9\u0001\u0000\u0001\u0000\u0001\u0000\u0001"+
29012 		"\u0000\u0003\u0000\u01f9\b\u0000\u0001\u0000\u0001\u0000\u0003\u0000\u01fd"+
29013 		"\b\u0000\u0001\u0000\u0003\u0000\u0200\b\u0000\u0001\u0000\u0003\u0000"+
29014 		"\u0203\b\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0003\u0001\u0208\b"+
29015 		"\u0001\u0001\u0001\u0001\u0001\u0003\u0001\u020c\b\u0001\u0001\u0001\u0001"+
29016 		"\u0001\u0001\u0001\u0003\u0001\u0211\b\u0001\u0001\u0001\u0003\u0001\u0214"+
29017 		"\b\u0001\u0001\u0002\u0003\u0002\u0217\b\u0002\u0001\u0002\u0003\u0002"+
29018 		"\u021a\b\u0002\u0001\u0003\u0001\u0003\u0003\u0003\u021e\b\u0003\u0001"+
29019 		"\u0003\u0003\u0003\u0221\b\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001"+
29020 		"\u0003\u0005\u0003\u0227\b\u0003\n\u0003\f\u0003\u022a\t\u0003\u0001\u0003"+
29021 		"\u0003\u0003\u022d\b\u0003\u0001\u0003\u0003\u0003\u0230\b\u0003\u0001"+
29022 		"\u0004\u0001\u0004\u0001\u0004\u0005\u0004\u0235\b\u0004\n\u0004\f\u0004"+
29023 		"\u0238\t\u0004\u0001\u0005\u0001\u0005\u0003\u0005\u023c\b\u0005\u0001"+
29024 		"\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0003\u0006\u0243"+
29025 		"\b\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0003\u0007\u0248\b\u0007"+
29026 		"\u0001\u0007\u0001\u0007\u0003\u0007\u024c\b\u0007\u0001\u0007\u0003\u0007"+
29027 		"\u024f\b\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0003\b\u0255\b"+
29028 		"\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\b\u0005\b\u025e"+
29029 		"\b\b\n\b\f\b\u0261\t\b\u0001\t\u0001\t\u0001\t\u0003\t\u0266\b\t\u0001"+
29030 		"\n\u0001\n\u0001\n\u0001\n\u0005\n\u026c\b\n\n\n\f\n\u026f\t\n\u0001\n"+
29031 		"\u0001\n\u0001\u000b\u0003\u000b\u0274\b\u000b\u0001\u000b\u0001\u000b"+
29032 		"\u0001\u000b\u0001\u000b\u0001\u000b\u0003\u000b\u027b\b\u000b\u0001\u000b"+
29033 		"\u0003\u000b\u027e\b\u000b\u0001\u000b\u0003\u000b\u0281\b\u000b\u0001"+
29034 		"\f\u0003\f\u0284\b\f\u0001\f\u0003\f\u0287\b\f\u0001\r\u0001\r\u0001\r"+
29035 		"\u0001\r\u0001\u000e\u0003\u000e\u028e\b\u000e\u0001\u000e\u0001\u000e"+
29036 		"\u0001\u000e\u0001\u000e\u0005\u000e\u0294\b\u000e\n\u000e\f\u000e\u0297"+
29037 		"\t\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0005\u000f\u029d"+
29038 		"\b\u000f\n\u000f\f\u000f\u02a0\t\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+
29039 		"\u0001\u000f\u0003\u000f\u02a6\b\u000f\u0001\u0010\u0001\u0010\u0001\u0010"+
29040 		"\u0003\u0010\u02ab\b\u0010\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0012"+
29041 		"\u0001\u0012\u0001\u0012\u0001\u0012\u0003\u0012\u02b4\b\u0012\u0001\u0012"+
29042 		"\u0003\u0012\u02b7\b\u0012\u0001\u0012\u0003\u0012\u02ba\b\u0012\u0001"+
29043 		"\u0012\u0003\u0012\u02bd\b\u0012\u0001\u0013\u0003\u0013\u02c0\b\u0013"+
29044 		"\u0001\u0013\u0003\u0013\u02c3\b\u0013\u0001\u0013\u0003\u0013\u02c6\b"+
29045 		"\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0003\u0014\u02cb\b\u0014\u0001"+
29046 		"\u0014\u0003\u0014\u02ce\b\u0014\u0001\u0014\u0003\u0014\u02d1\b\u0014"+
29047 		"\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0015"+
29048 		"\u0001\u0015\u0001\u0015\u0001\u0015\u0003\u0015\u02dc\b\u0015\u0001\u0016"+
29049 		"\u0001\u0016\u0003\u0016\u02e0\b\u0016\u0001\u0016\u0001\u0016\u0003\u0016"+
29050 		"\u02e4\b\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+
29051 		"\u0001\u0017\u0001\u0017\u0003\u0017\u02ed\b\u0017\u0001\u0017\u0001\u0017"+
29052 		"\u0001\u0017\u0001\u0017\u0003\u0017\u02f3\b\u0017\u0001\u0018\u0003\u0018"+
29053 		"\u02f6\b\u0018\u0001\u0018\u0001\u0018\u0003\u0018\u02fa\b\u0018\u0001"+
29054 		"\u0018\u0003\u0018\u02fd\b\u0018\u0001\u0018\u0003\u0018\u0300\b\u0018"+
29055 		"\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0003\u0019"+
29056 		"\u0307\b\u0019\u0001\u0019\u0001\u0019\u0005\u0019\u030b\b\u0019\n\u0019"+
29057 		"\f\u0019\u030e\t\u0019\u0001\u001a\u0001\u001a\u0003\u001a\u0312\b\u001a"+
29058 		"\u0001\u001a\u0001\u001a\u0003\u001a\u0316\b\u001a\u0001\u001a\u0001\u001a"+
29059 		"\u0003\u001a\u031a\b\u001a\u0001\u001a\u0001\u001a\u0003\u001a\u031e\b"+
29060 		"\u001a\u0003\u001a\u0320\b\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+
29061 		"\u001b\u0003\u001b\u0326\b\u001b\u0003\u001b\u0328\b\u001b\u0001\u001b"+
29062 		"\u0001\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0003\u001c\u032f\b\u001c"+
29063 		"\u0001\u001d\u0001\u001d\u0005\u001d\u0333\b\u001d\n\u001d\f\u001d\u0336"+
29064 		"\t\u001d\u0001\u001d\u0001\u001d\u0003\u001d\u033a\b\u001d\u0001\u001d"+
29065 		"\u0003\u001d\u033d\b\u001d\u0001\u001d\u0003\u001d\u0340\b\u001d\u0001"+
29066 		"\u001d\u0003\u001d\u0343\b\u001d\u0001\u001d\u0003\u001d\u0346\b\u001d"+
29067 		"\u0001\u001d\u0003\u001d\u0349\b\u001d\u0001\u001e\u0001\u001e\u0001\u001e"+
29068 		"\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001 \u0001 \u0001"+
29069 		" \u0005 \u0356\b \n \f \u0359\t \u0001!\u0001!\u0003!\u035d\b!\u0001!"+
29070 		"\u0001!\u0001!\u0005!\u0362\b!\n!\f!\u0365\t!\u0001\"\u0001\"\u0001\""+
29071 		"\u0001\"\u0001\"\u0003\"\u036c\b\"\u0001\"\u0001\"\u0001\"\u0001#\u0001"+
29072 		"#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0003#\u0379\b#\u0001$\u0001"+
29073 		"$\u0001%\u0001%\u0003%\u037f\b%\u0001%\u0001%\u0005%\u0383\b%\n%\f%\u0386"+
29074 		"\t%\u0001&\u0001&\u0003&\u038a\b&\u0001&\u0003&\u038d\b&\u0001&\u0003"+
29075 		"&\u0390\b&\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0003(\u0397\b(\u0001"+
29076 		"(\u0001(\u0001(\u0001)\u0001)\u0001)\u0003)\u039f\b)\u0001*\u0001*\u0001"+
29077 		"*\u0005*\u03a4\b*\n*\f*\u03a7\t*\u0001+\u0001+\u0005+\u03ab\b+\n+\f+\u03ae"+
29078 		"\t+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0003,\u03b6\b,\u0001,\u0005"+
29079 		",\u03b9\b,\n,\f,\u03bc\t,\u0001-\u0001-\u0003-\u03c0\b-\u0001-\u0003-"+
29080 		"\u03c3\b-\u0001-\u0003-\u03c6\b-\u0001-\u0003-\u03c9\b-\u0001-\u0001-"+
29081 		"\u0003-\u03cd\b-\u0001-\u0001-\u0001-\u0001-\u0001-\u0003-\u03d4\b-\u0001"+
29082 		"-\u0001-\u0001-\u0001-\u0003-\u03da\b-\u0001.\u0001.\u0001.\u0001.\u0001"+
29083 		".\u0005.\u03e1\b.\n.\f.\u03e4\t.\u0001.\u0001.\u0001/\u0001/\u0001/\u0005"+
29084 		"/\u03eb\b/\n/\f/\u03ee\t/\u00010\u00010\u00010\u00010\u00010\u00010\u0001"+
29085 		"0\u00010\u00030\u03f8\b0\u00030\u03fa\b0\u00010\u00010\u00010\u00010\u0005"+
29086 		"0\u0400\b0\n0\f0\u0403\t0\u00010\u00010\u00011\u00011\u00011\u00031\u040a"+
29087 		"\b1\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00031\u0413\b1\u0001"+
29088 		"2\u00032\u0416\b2\u00012\u00012\u00032\u041a\b2\u00013\u00013\u00033\u041e"+
29089 		"\b3\u00013\u00013\u00014\u00014\u00034\u0424\b4\u00014\u00014\u00014\u0001"+
29090 		"4\u00034\u042a\b4\u00014\u00034\u042d\b4\u00015\u00015\u00015\u00015\u0001"+
29091 		"5\u00015\u00015\u00035\u0436\b5\u00016\u00016\u00016\u00017\u00017\u0001"+
29092 		"7\u00017\u00017\u00057\u0440\b7\n7\f7\u0443\t7\u00017\u00017\u00037\u0447"+
29093 		"\b7\u00018\u00018\u00018\u00019\u00019\u00019\u00019\u00039\u0450\b9\u0001"+
29094 		"9\u00019\u00019\u00019\u00019\u00039\u0457\b9\u0001:\u0001:\u0003:\u045b"+
29095 		"\b:\u0001;\u0001;\u0003;\u045f\b;\u0001<\u0001<\u0001<\u0001<\u0005<\u0465"+
29096 		"\b<\n<\f<\u0468\t<\u0001=\u0001=\u0001=\u0001=\u0001>\u0001>\u0001?\u0001"+
29097 		"?\u0001?\u0001?\u0001?\u0001?\u0003?\u0476\b?\u0001@\u0001@\u0001@\u0001"+
29098 		"@\u0003@\u047c\b@\u0001@\u0001@\u0001@\u0001@\u0001@\u0001@\u0003@\u0484"+
29099 		"\b@\u0001A\u0001A\u0001A\u0001A\u0005A\u048a\bA\nA\fA\u048d\tA\u0001A"+
29100 		"\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0003A\u0498"+
29101 		"\bA\u0001A\u0001A\u0004A\u049c\bA\u000bA\fA\u049d\u0003A\u04a0\bA\u0001"+
29102 		"A\u0001A\u0004A\u04a4\bA\u000bA\fA\u04a5\u0003A\u04a8\bA\u0003A\u04aa"+
29103 		"\bA\u0001B\u0001B\u0001B\u0003B\u04af\bB\u0001B\u0003B\u04b2\bB\u0001"+
29104 		"B\u0001B\u0001B\u0001B\u0003B\u04b8\bB\u0001C\u0004C\u04bb\bC\u000bC\f"+
29105 		"C\u04bc\u0001D\u0001D\u0001E\u0001E\u0001E\u0003E\u04c4\bE\u0001F\u0001"+
29106 		"F\u0001F\u0001G\u0001G\u0003G\u04cb\bG\u0001H\u0001H\u0001H\u0005H\u04d0"+
29107 		"\bH\nH\fH\u04d3\tH\u0001I\u0001I\u0001J\u0001J\u0001K\u0001K\u0001K\u0001"+
29108 		"K\u0001K\u0001K\u0001K\u0003K\u04e0\bK\u0001L\u0001L\u0001M\u0003M\u04e5"+
29109 		"\bM\u0001M\u0001M\u0003M\u04e9\bM\u0001N\u0003N\u04ec\bN\u0001N\u0001"+
29110 		"N\u0001O\u0001O\u0001O\u0001P\u0003P\u04f4\bP\u0001P\u0001P\u0003P\u04f8"+
29111 		"\bP\u0001Q\u0003Q\u04fb\bQ\u0001Q\u0001Q\u0003Q\u04ff\bQ\u0001R\u0001"+
29112 		"R\u0001S\u0001S\u0001T\u0001T\u0003T\u0507\bT\u0001U\u0001U\u0001U\u0001"+
29113 		"U\u0001U\u0001U\u0001U\u0001U\u0001U\u0001U\u0003U\u0513\bU\u0001V\u0001"+
29114 		"V\u0001W\u0001W\u0001X\u0001X\u0001Y\u0001Y\u0001Z\u0001Z\u0001[\u0001"+
29115 		"[\u0001[\u0003[\u0522\b[\u0001\\\u0001\\\u0001]\u0001]\u0003]\u0528\b"+
29116 		"]\u0001^\u0001^\u0001^\u0003^\u052d\b^\u0001_\u0001_\u0001_\u0001_\u0003"+
29117 		"_\u0533\b_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001`\u0001`\u0003`\u053c"+
29118 		"\b`\u0001a\u0001a\u0001a\u0001a\u0001a\u0003a\u0543\ba\u0001a\u0001a\u0001"+
29119 		"b\u0001b\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0001c\u0003"+
29120 		"c\u0551\bc\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0001d\u0003d\u055a"+
29121 		"\bd\u0001e\u0001e\u0001e\u0003e\u055f\be\u0001e\u0001e\u0001e\u0003e\u0564"+
29122 		"\be\u0003e\u0566\be\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001g\u0001"+
29123 		"g\u0001g\u0001g\u0001g\u0003g\u0573\bg\u0001h\u0001h\u0001h\u0001i\u0001"+
29124 		"i\u0001j\u0001j\u0001j\u0005j\u057d\bj\nj\fj\u0580\tj\u0001k\u0001k\u0001"+
29125 		"k\u0003k\u0585\bk\u0001l\u0001l\u0001l\u0005l\u058a\bl\nl\fl\u058d\tl"+
29126 		"\u0001m\u0001m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0003"+
29127 		"n\u0598\bn\u0001n\u0001n\u0001o\u0001o\u0001p\u0001p\u0001q\u0001q\u0001"+
29128 		"r\u0001r\u0001s\u0001s\u0001t\u0001t\u0001t\u0001t\u0004t\u05aa\bt\u000b"+
29129 		"t\ft\u05ab\u0003t\u05ae\bt\u0001u\u0001u\u0001u\u0003u\u05b3\bu\u0001"+
29130 		"v\u0001v\u0001v\u0001v\u0003v\u05b9\bv\u0003v\u05bb\bv\u0001w\u0001w\u0001"+
29131 		"w\u0003w\u05c0\bw\u0001w\u0001w\u0001x\u0001x\u0001y\u0001y\u0001z\u0001"+
29132 		"z\u0001z\u0003z\u05cb\bz\u0001z\u0001z\u0001{\u0001{\u0001{\u0003{\u05d2"+
29133 		"\b{\u0001{\u0001{\u0001|\u0001|\u0001|\u0003|\u05d9\b|\u0001|\u0001|\u0001"+
29134 		"}\u0001}\u0001~\u0001~\u0001\u007f\u0001\u007f\u0001\u0080\u0001\u0080"+
29135 		"\u0001\u0080\u0005\u0080\u05e6\b\u0080\n\u0080\f\u0080\u05e9\t\u0080\u0001"+
29136 		"\u0081\u0001\u0081\u0001\u0081\u0005\u0081\u05ee\b\u0081\n\u0081\f\u0081"+
29137 		"\u05f1\t\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0005\u0082\u05f6\b"+
29138 		"\u0082\n\u0082\f\u0082\u05f9\t\u0082\u0001\u0083\u0001\u0083\u0001\u0084"+
29139 		"\u0001\u0084\u0001\u0085\u0001\u0085\u0001\u0086\u0001\u0086\u0001\u0087"+
29140 		"\u0001\u0087\u0001\u0088\u0001\u0088\u0001\u0089\u0001\u0089\u0001\u008a"+
29141 		"\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008a\u0001\u008b"+
29142 		"\u0001\u008b\u0001\u008c\u0001\u008c\u0001\u008c\u0003\u008c\u0614\b\u008c"+
29143 		"\u0001\u008d\u0001\u008d\u0001\u008e\u0001\u008e\u0001\u008e\u0003\u008e"+
29144 		"\u061b\b\u008e\u0001\u008f\u0001\u008f\u0003\u008f\u061f\b\u008f\u0001"+
29145 		"\u0090\u0001\u0090\u0001\u0091\u0001\u0091\u0001\u0091\u0003\u0091\u0626"+
29146 		"\b\u0091\u0001\u0092\u0001\u0092\u0001\u0093\u0001\u0093\u0001\u0094\u0001"+
29147 		"\u0094\u0003\u0094\u062e\b\u0094\u0001\u0095\u0001\u0095\u0001\u0096\u0001"+
29148 		"\u0096\u0001\u0096\u0005\u0096\u0635\b\u0096\n\u0096\f\u0096\u0638\t\u0096"+
29149 		"\u0001\u0097\u0001\u0097\u0003\u0097\u063c\b\u0097\u0001\u0098\u0001\u0098"+
29150 		"\u0001\u0099\u0001\u0099\u0001\u0099\u0001\u009a\u0001\u009a\u0001\u009a"+
29151 		"\u0001\u009a\u0001\u009a\u0003\u009a\u0648\b\u009a\u0001\u009a\u0001\u009a"+
29152 		"\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a\u0001\u009a"+
29153 		"\u0001\u009a\u0001\u009a\u0001\u009a\u0005\u009a\u0655\b\u009a\n\u009a"+
29154 		"\f\u009a\u0658\t\u009a\u0001\u009b\u0001\u009b\u0001\u009c\u0001\u009c"+
29155 		"\u0001\u009d\u0001\u009d\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+
29156 		"\u0001\u009e\u0001\u009e\u0003\u009e\u0666\b\u009e\u0001\u009e\u0001\u009e"+
29157 		"\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+
29158 		"\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+
29159 		"\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e"+
29160 		"\u0001\u009e\u0001\u009e\u0001\u009e\u0001\u009e\u0005\u009e\u0680\b\u009e"+
29161 		"\n\u009e\f\u009e\u0683\t\u009e\u0001\u009f\u0001\u009f\u0001\u00a0\u0001"+
29162 		"\u00a0\u0001\u00a1\u0001\u00a1\u0003\u00a1\u068b\b\u00a1\u0001\u00a1\u0001"+
29163 		"\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0003\u00a1\u0692\b\u00a1\u0001"+
29164 		"\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0005\u00a1\u0699"+
29165 		"\b\u00a1\n\u00a1\f\u00a1\u069c\t\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1"+
29166 		"\u0001\u00a1\u0003\u00a1\u06a2\b\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1"+
29167 		"\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1"+
29168 		"\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0003\u00a1\u06b0\b\u00a1\u0001\u00a1"+
29169 		"\u0001\u00a1\u0001\u00a1\u0001\u00a1\u0003\u00a1\u06b6\b\u00a1\u0001\u00a1"+
29170 		"\u0001\u00a1\u0003\u00a1\u06ba\b\u00a1\u0001\u00a1\u0001\u00a1\u0001\u00a1"+
29171 		"\u0001\u00a1\u0003\u00a1\u06c0\b\u00a1\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29172 		"\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29173 		"\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29174 		"\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29175 		"\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29176 		"\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29177 		"\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29178 		"\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2\u0001\u00a2"+
29179 		"\u0005\u00a2\u06ef\b\u00a2\n\u00a2\f\u00a2\u06f2\t\u00a2\u0001\u00a3\u0001"+
29180 		"\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001"+
29181 		"\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0003\u00a3\u06ff\b\u00a3\u0001"+
29182 		"\u00a3\u0001\u00a3\u0003\u00a3\u0703\b\u00a3\u0001\u00a3\u0001\u00a3\u0001"+
29183 		"\u00a3\u0001\u00a3\u0005\u00a3\u0709\b\u00a3\n\u00a3\f\u00a3\u070c\t\u00a3"+
29184 		"\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0003\u00a3\u0711\b\u00a3\u0001\u00a3"+
29185 		"\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3"+
29186 		"\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3"+
29187 		"\u0003\u00a3\u0720\b\u00a3\u0001\u00a3\u0003\u00a3\u0723\b\u00a3\u0001"+
29188 		"\u00a3\u0001\u00a3\u0001\u00a3\u0003\u00a3\u0728\b\u00a3\u0001\u00a3\u0001"+
29189 		"\u00a3\u0001\u00a3\u0001\u00a3\u0001\u00a3\u0005\u00a3\u072f\b\u00a3\n"+
29190 		"\u00a3\f\u00a3\u0732\t\u00a3\u0001\u00a4\u0001\u00a4\u0001\u00a5\u0001"+
29191 		"\u00a5\u0001\u00a5\u0001\u00a5\u0003\u00a5\u073a\b\u00a5\u0001\u00a5\u0001"+
29192 		"\u00a5\u0001\u00a5\u0001\u00a6\u0001\u00a6\u0001\u00a6\u0003\u00a6\u0742"+
29193 		"\b\u00a6\u0001\u00a6\u0001\u00a6\u0003\u00a6\u0746\b\u00a6\u0001\u00a7"+
29194 		"\u0001\u00a7\u0001\u00a7\u0005\u00a7\u074b\b\u00a7\n\u00a7\f\u00a7\u074e"+
29195 		"\t\u00a7\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0001\u00a8\u0003"+
29196 		"\u00a8\u0755\b\u00a8\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0003\u00a9\u075a"+
29197 		"\b\u00a9\u0001\u00a9\u0001\u00a9\u0001\u00a9\u0005\u00a9\u075f\b\u00a9"+
29198 		"\n\u00a9\f\u00a9\u0762\t\u00a9\u0003\u00a9\u0764\b\u00a9\u0001\u00a9\u0001"+
29199 		"\u00a9\u0001\u00aa\u0001\u00aa\u0001\u00aa\u0003\u00aa\u076b\b\u00aa\u0001"+
29200 		"\u00aa\u0001\u00aa\u0001\u00aa\u0005\u00aa\u0770\b\u00aa\n\u00aa\f\u00aa"+
29201 		"\u0773\t\u00aa\u0001\u00aa\u0003\u00aa\u0776\b\u00aa\u0001\u00aa\u0003"+
29202 		"\u00aa\u0779\b\u00aa\u0001\u00aa\u0001\u00aa\u0003\u00aa\u077d\b\u00aa"+
29203 		"\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+
29204 		"\u0001\u00ab\u0003\u00ab\u0786\b\u00ab\u0001\u00ab\u0001\u00ab\u0001\u00ab"+
29205 		"\u0005\u00ab\u078b\b\u00ab\n\u00ab\f\u00ab\u078e\t\u00ab\u0003\u00ab\u0790"+
29206 		"\b\u00ab\u0001\u00ab\u0001\u00ab\u0003\u00ab\u0794\b\u00ab\u0001\u00ac"+
29207 		"\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+
29208 		"\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+
29209 		"\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+
29210 		"\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+
29211 		"\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac\u0001\u00ac"+
29212 		"\u0001\u00ac\u0003\u00ac\u07b6\b\u00ac\u0001\u00ad\u0001\u00ad\u0001\u00ae"+
29213 		"\u0001\u00ae\u0001\u00af\u0001\u00af\u0001\u00af\u0003\u00af\u07bf\b\u00af"+
29214 		"\u0001\u00b0\u0001\u00b0\u0003\u00b0\u07c3\b\u00b0\u0001\u00b0\u0001\u00b0"+
29215 		"\u0001\u00b0\u0001\u00b0\u0001\u00b0\u0005\u00b0\u07ca\b\u00b0\n\u00b0"+
29216 		"\f\u00b0\u07cd\t\u00b0\u0003\u00b0\u07cf\b\u00b0\u0001\u00b0\u0003\u00b0"+
29217 		"\u07d2\b\u00b0\u0001\u00b0\u0003\u00b0\u07d5\b\u00b0\u0001\u00b0\u0001"+
29218 		"\u00b0\u0001\u00b1\u0001\u00b1\u0001\u00b1\u0003\u00b1\u07dc\b\u00b1\u0001"+
29219 		"\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001"+
29220 		"\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0001\u00b2\u0003"+
29221 		"\u00b2\u07ea\b\u00b2\u0001\u00b3\u0001\u00b3\u0001\u00b4\u0001\u00b4\u0001"+
29222 		"\u00b4\u0001\u00b4\u0001\u00b4\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+
29223 		"\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001\u00b5\u0001"+
29224 		"\u00b5\u0001\u00b5\u0001\u00b5\u0003\u00b5\u07ff\b\u00b5\u0001\u00b6\u0001"+
29225 		"\u00b6\u0001\u00b6\u0003\u00b6\u0804\b\u00b6\u0001\u00b7\u0001\u00b7\u0001"+
29226 		"\u00b7\u0003\u00b7\u0809\b\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b7\u0005"+
29227 		"\u00b7\u080e\b\u00b7\n\u00b7\f\u00b7\u0811\t\u00b7\u0001\u00b7\u0003\u00b7"+
29228 		"\u0814\b\u00b7\u0001\u00b7\u0003\u00b7\u0817\b\u00b7\u0001\u00b7\u0001"+
29229 		"\u00b7\u0003\u00b7\u081b\b\u00b7\u0001\u00b7\u0001\u00b7\u0001\u00b8\u0001"+
29230 		"\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001"+
29231 		"\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0003\u00b8\u082b"+
29232 		"\b\u00b8\u0001\u00b8\u0001\u00b8\u0003\u00b8\u082f\b\u00b8\u0001\u00b8"+
29233 		"\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8"+
29234 		"\u0003\u00b8\u0838\b\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8"+
29235 		"\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8\u0001\u00b8"+
29236 		"\u0003\u00b8\u0844\b\u00b8\u0001\u00b8\u0003\u00b8\u0847\b\u00b8\u0001"+
29237 		"\u00b8\u0001\u00b8\u0003\u00b8\u084b\b\u00b8\u0001\u00b9\u0001\u00b9\u0001"+
29238 		"\u00b9\u0003\u00b9\u0850\b\u00b9\u0001\u00ba\u0001\u00ba\u0001\u00ba\u0001"+
29239 		"\u00ba\u0003\u00ba\u0856\b\u00ba\u0001\u00bb\u0001\u00bb\u0001\u00bb\u0001"+
29240 		"\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001\u00bc\u0001"+
29241 		"\u00bc\u0003\u00bc\u0862\b\u00bc\u0001\u00bd\u0001\u00bd\u0001\u00be\u0001"+
29242 		"\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0003\u00be\u086c"+
29243 		"\b\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+
29244 		"\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001\u00be\u0001"+
29245 		"\u00be\u0003\u00be\u087a\b\u00be\u0001\u00be\u0001\u00be\u0003\u00be\u087e"+
29246 		"\b\u00be\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001"+
29247 		"\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001\u00bf\u0001"+
29248 		"\u00bf\u0001\u00bf\u0001\u00bf\u0003\u00bf\u088e\b\u00bf\u0001\u00c0\u0001"+
29249 		"\u00c0\u0003\u00c0\u0892\b\u00c0\u0001\u00c0\u0001\u00c0\u0003\u00c0\u0896"+
29250 		"\b\u00c0\u0001\u00c0\u0003\u00c0\u0899\b\u00c0\u0001\u00c0\u0001\u00c0"+
29251 		"\u0003\u00c0\u089d\b\u00c0\u0001\u00c0\u0003\u00c0\u08a0\b\u00c0\u0001"+
29252 		"\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0003\u00c0\u08a7"+
29253 		"\b\u00c0\u0001\u00c0\u0001\u00c0\u0003\u00c0\u08ab\b\u00c0\u0001\u00c0"+
29254 		"\u0001\u00c0\u0001\u00c0\u0003\u00c0\u08b0\b\u00c0\u0001\u00c0\u0001\u00c0"+
29255 		"\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0001\u00c0\u0003\u00c0\u08b8\b\u00c0"+
29256 		"\u0003\u00c0\u08ba\b\u00c0\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c1"+
29257 		"\u0001\u00c1\u0001\u00c1\u0001\u00c1\u0001\u00c2\u0001\u00c2\u0001\u00c2"+
29258 		"\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0003\u00c2\u08ca\b\u00c2"+
29259 		"\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0001\u00c2"+
29260 		"\u0001\u00c2\u0001\u00c2\u0001\u00c2\u0003\u00c2\u08d5\b\u00c2\u0001\u00c2"+
29261 		"\u0001\u00c2\u0003\u00c2\u08d9\b\u00c2\u0001\u00c3\u0001\u00c3\u0001\u00c3"+
29262 		"\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c3\u0001\u00c4\u0001\u00c4"+
29263 		"\u0001\u00c4\u0001\u00c4\u0001\u00c4\u0005\u00c4\u08e7\b\u00c4\n\u00c4"+
29264 		"\f\u00c4\u08ea\t\u00c4\u0001\u00c4\u0001\u00c4\u0003\u00c4\u08ee\b\u00c4"+
29265 		"\u0001\u00c4\u0001\u00c4\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5"+
29266 		"\u0003\u00c5\u08f6\b\u00c5\u0001\u00c5\u0003\u00c5\u08f9\b\u00c5\u0001"+
29267 		"\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001\u00c5\u0001"+
29268 		"\u00c5\u0001\u00c5\u0003\u00c5\u0903\b\u00c5\u0001\u00c5\u0001\u00c5\u0001"+
29269 		"\u00c5\u0003\u00c5\u0908\b\u00c5\u0001\u00c6\u0001\u00c6\u0001\u00c6\u0001"+
29270 		"\u00c6\u0001\u00c6\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001\u00c7\u0001"+
29271 		"\u00c7\u0003\u00c7\u0914\b\u00c7\u0001\u00c7\u0003\u00c7\u0917\b\u00c7"+
29272 		"\u0001\u00c7\u0001\u00c7\u0001\u00c8\u0001\u00c8\u0001\u00c8\u0001\u00c8"+
29273 		"\u0005\u00c8\u091f\b\u00c8\n\u00c8\f\u00c8\u0922\t\u00c8\u0001\u00c8\u0001"+
29274 		"\u00c8\u0001\u00c8\u0003\u00c8\u0927\b\u00c8\u0001\u00c9\u0001\u00c9\u0003"+
29275 		"\u00c9\u092b\b\u00c9\u0001\u00c9\u0003\u00c9\u092e\b\u00c9\u0001\u00ca"+
29276 		"\u0001\u00ca\u0003\u00ca\u0932\b\u00ca\u0001\u00cb\u0001\u00cb\u0001\u00cb"+
29277 		"\u0001\u00cb\u0003\u00cb\u0938\b\u00cb\u0001\u00cb\u0003\u00cb\u093b\b"+
29278 		"\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0001\u00cb\u0003\u00cb\u0941"+
29279 		"\b\u00cb\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cc\u0005"+
29280 		"\u00cc\u0948\b\u00cc\n\u00cc\f\u00cc\u094b\t\u00cc\u0001\u00cc\u0003\u00cc"+
29281 		"\u094e\b\u00cc\u0001\u00cc\u0001\u00cc\u0001\u00cd\u0001\u00cd\u0001\u00cd"+
29282 		"\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+
29283 		"\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+
29284 		"\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+
29285 		"\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd"+
29286 		"\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0001\u00cd\u0003\u00cd\u0971\b\u00cd"+
29287 		"\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+
29288 		"\u0003\u00ce\u0979\b\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00ce"+
29289 		"\u0003\u00ce\u097f\b\u00ce\u0001\u00ce\u0001\u00ce\u0001\u00cf\u0001\u00cf"+
29290 		"\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+
29291 		"\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0001\u00cf"+
29292 		"\u0001\u00cf\u0001\u00cf\u0001\u00cf\u0003\u00cf\u0994\b\u00cf\u0001\u00d0"+
29293 		"\u0001\u00d0\u0003\u00d0\u0998\b\u00d0\u0001\u00d0\u0004\u00d0\u099b\b"+
29294 		"\u00d0\u000b\u00d0\f\u00d0\u099c\u0001\u00d0\u0003\u00d0\u09a0\b\u00d0"+
29295 		"\u0001\u00d0\u0001\u00d0\u0001\u00d1\u0001\u00d1\u0001\u00d2\u0001\u00d2"+
29296 		"\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d3\u0001\u00d4"+
29297 		"\u0001\u00d4\u0001\u00d4\u0001\u00d5\u0001\u00d5\u0001\u00d5\u0001\u00d6"+
29298 		"\u0001\u00d6\u0001\u00d6\u0001\u00d7\u0001\u00d7\u0001\u00d8\u0001\u00d8"+
29299 		"\u0001\u00d8\u0001\u00d8\u0001\u00d8\u0005\u00d8\u09bd\b\u00d8\n\u00d8"+
29300 		"\f\u00d8\u09c0\t\u00d8\u0001\u00d9\u0001\u00d9\u0003\u00d9\u09c4\b\u00d9"+
29301 		"\u0001\u00d9\u0003\u00d9\u09c7\b\u00d9\u0001\u00da\u0001\u00da\u0003\u00da"+
29302 		"\u09cb\b\u00da\u0001\u00da\u0003\u00da\u09ce\b\u00da\u0001\u00da\u0001"+
29303 		"\u00da\u0001\u00da\u0003\u00da\u09d3\b\u00da\u0003\u00da\u09d5\b\u00da"+
29304 		"\u0001\u00da\u0003\u00da\u09d8\b\u00da\u0001\u00da\u0003\u00da\u09db\b"+
29305 		"\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u09e0\b\u00da\u0001"+
29306 		"\u00da\u0003\u00da\u09e3\b\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u09e7"+
29307 		"\b\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u09ec\b\u00da"+
29308 		"\u0001\u00da\u0003\u00da\u09ef\b\u00da\u0001\u00da\u0001\u00da\u0003\u00da"+
29309 		"\u09f3\b\u00da\u0001\u00da\u0003\u00da\u09f6\b\u00da\u0001\u00da\u0003"+
29310 		"\u00da\u09f9\b\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u09fe"+
29311 		"\b\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a03\b\u00da"+
29312 		"\u0001\u00da\u0001\u00da\u0003\u00da\u0a07\b\u00da\u0001\u00da\u0001\u00da"+
29313 		"\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da"+
29314 		"\u0003\u00da\u0a11\b\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a15\b"+
29315 		"\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a19\b\u00da\u0001\u00da\u0001"+
29316 		"\u00da\u0003\u00da\u0a1d\b\u00da\u0001\u00da\u0003\u00da\u0a20\b\u00da"+
29317 		"\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a25\b\u00da\u0001\u00da"+
29318 		"\u0001\u00da\u0001\u00da\u0003\u00da\u0a2a\b\u00da\u0001\u00da\u0001\u00da"+
29319 		"\u0003\u00da\u0a2e\b\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da"+
29320 		"\u0a33\b\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da"+
29321 		"\u0a39\b\u00da\u0001\u00da\u0003\u00da\u0a3c\b\u00da\u0001\u00da\u0001"+
29322 		"\u00da\u0003\u00da\u0a40\b\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a44"+
29323 		"\b\u00da\u0001\u00da\u0003\u00da\u0a47\b\u00da\u0001\u00da\u0001\u00da"+
29324 		"\u0003\u00da\u0a4b\b\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a4f\b"+
29325 		"\u00da\u0001\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a54\b\u00da\u0001"+
29326 		"\u00da\u0001\u00da\u0001\u00da\u0003\u00da\u0a59\b\u00da\u0001\u00da\u0003"+
29327 		"\u00da\u0a5c\b\u00da\u0001\u00db\u0001\u00db\u0001\u00db\u0001\u00db\u0005"+
29328 		"\u00db\u0a62\b\u00db\n\u00db\f\u00db\u0a65\t\u00db\u0001\u00db\u0001\u00db"+
29329 		"\u0001\u00dc\u0001\u00dc\u0001\u00dc\u0003\u00dc\u0a6c\b\u00dc\u0001\u00dd"+
29330 		"\u0001\u00dd\u0003\u00dd\u0a70\b\u00dd\u0001\u00de\u0004\u00de\u0a73\b"+
29331 		"\u00de\u000b\u00de\f\u00de\u0a74\u0001\u00df\u0001\u00df\u0001\u00df\u0001"+
29332 		"\u00df\u0001\u00df\u0001\u00df\u0001\u00e0\u0001\u00e0\u0001\u00e0\u0001"+
29333 		"\u00e0\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+
29334 		"\u00e1\u0003\u00e1\u0a87\b\u00e1\u0001\u00e1\u0001\u00e1\u0001\u00e1\u0001"+
29335 		"\u00e1\u0003\u00e1\u0a8d\b\u00e1\u0003\u00e1\u0a8f\b\u00e1\u0001\u00e2"+
29336 		"\u0001\u00e2\u0003\u00e2\u0a93\b\u00e2\u0001\u00e2\u0001\u00e2\u0003\u00e2"+
29337 		"\u0a97\b\u00e2\u0001\u00e3\u0001\u00e3\u0003\u00e3\u0a9b\b\u00e3\u0001"+
29338 		"\u00e3\u0001\u00e3\u0003\u00e3\u0a9f\b\u00e3\u0001\u00e4\u0001\u00e4\u0001"+
29339 		"\u00e4\u0003\u00e4\u0aa4\b\u00e4\u0001\u00e5\u0003\u00e5\u0aa7\b\u00e5"+
29340 		"\u0001\u00e5\u0001\u00e5\u0003\u00e5\u0aab\b\u00e5\u0001\u00e5\u0001\u00e5"+
29341 		"\u0001\u00e6\u0003\u00e6\u0ab0\b\u00e6\u0001\u00e6\u0001\u00e6\u0003\u00e6"+
29342 		"\u0ab4\b\u00e6\u0001\u00e6\u0001\u00e6\u0001\u00e7\u0003\u00e7\u0ab9\b"+
29343 		"\u00e7\u0001\u00e7\u0001\u00e7\u0003\u00e7\u0abd\b\u00e7\u0001\u00e7\u0001"+
29344 		"\u00e7\u0001\u00e8\u0001\u00e8\u0001\u00e8\u0003\u00e8\u0ac4\b\u00e8\u0001"+
29345 		"\u00e8\u0003\u00e8\u0ac7\b\u00e8\u0001\u00e9\u0001\u00e9\u0001\u00ea\u0001"+
29346 		"\u00ea\u0001\u00eb\u0001\u00eb\u0001\u00ec\u0001\u00ec\u0001\u00ed\u0001"+
29347 		"\u00ed\u0001\u00ed\u0001\u00ed\u0001\u00ee\u0001\u00ee\u0001\u00ee\u0001"+
29348 		"\u00ef\u0001\u00ef\u0001\u00ef\u0003\u00ef\u0adb\b\u00ef\u0001\u00f0\u0001"+
29349 		"\u00f0\u0001\u00f0\u0001\u00f0\u0005\u00f0\u0ae1\b\u00f0\n\u00f0\f\u00f0"+
29350 		"\u0ae4\t\u00f0\u0003\u00f0\u0ae6\b\u00f0\u0001\u00f0\u0001\u00f0\u0001"+
29351 		"\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f1\u0001\u00f2\u0001\u00f2\u0001"+
29352 		"\u00f2\u0001\u00f3\u0001\u00f3\u0001\u00f4\u0001\u00f4\u0001\u00f5\u0001"+
29353 		"\u00f5\u0001\u00f6\u0001\u00f6\u0001\u00f7\u0001\u00f7\u0001\u00f8\u0001"+
29354 		"\u00f8\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0001\u00f9\u0000"+
29355 		"\u00052\u0134\u013c\u0144\u0146\u00fa\u0000\u0002\u0004\u0006\b\n\f\u000e"+
29356 		"\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDF"+
29357 		"HJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c"+
29358 		"\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4"+
29359 		"\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc"+
29360 		"\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4"+
29361 		"\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec"+
29362 		"\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104"+
29363 		"\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c"+
29364 		"\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134"+
29365 		"\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c"+
29366 		"\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164"+
29367 		"\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c"+
29368 		"\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194"+
29369 		"\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac"+
29370 		"\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4"+
29371 		"\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc"+
29372 		"\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f0\u01f2\u0000"+
29373 		"@\u0003\u0000\u00c7\u00c7\u012f\u012f\u0186\u0186\u0001\u0000\u030c\u030d"+
29374 		"\u0002\u0000RR\u00d4\u00d5\u0003\u0000\u0111\u0111\u013a\u013a\u0303\u0303"+
29375 		"\u0002\u0000\u013f\u013f\u0161\u0161\u0002\u0000\u00aa\u00aa\u0143\u0143"+
29376 		"\u0002\u0000\u016e\u016e\u025c\u025c\u0002\u0000\u027e\u027e\u0300\u0300"+
29377 		"\u0006\u0000/Ecc\u0168\u0168\u01a4\u01a4\u0214\u0214\u0308\u030a\u0001"+
29378 		"\u0000\u034a\u034b\u0002\u0000BB\u034e\u034e\u0001\u0000\u000e\u000f\u0002"+
29379 		"\u0000\u00b8\u00b8\u02df\u02e0\u0002\u0000\u0100\u0100\u02ec\u02ec\u0096"+
29380 		"\u0000IKMQTTWX]adeklnprsyy{|~\u007f\u0087\u0089\u008b\u008d\u008f\u008f"+
29381 		"\u0091\u0093\u0096\u009c\u009e\u009f\u00a1\u00a3\u00a5\u00a5\u00a8\u00a9"+
29382 		"\u00ad\u00ad\u00b3\u00b4\u00b7\u00ba\u00bd\u00bd\u00c4\u00c6\u00c8\u00c8"+
29383 		"\u00cd\u00cd\u00cf\u00d3\u00db\u00dd\u00e2\u00e2\u00e4\u00e4\u00e6\u00ee"+
29384 		"\u00f1\u00f2\u00f4\u00f5\u00f9\u00fa\u00fc\u00ff\u0101\u0102\u0105\u0107"+
29385 		"\u0109\u0109\u010e\u010e\u0113\u0114\u0116\u0116\u0119\u0119\u011b\u011b"+
29386 		"\u011d\u011d\u011f\u0120\u0123\u0123\u0127\u0127\u012c\u012c\u0130\u0134"+
29387 		"\u0138\u0138\u013b\u013b\u013e\u013e\u0140\u0140\u0142\u0142\u0147\u0147"+
29388 		"\u0149\u0149\u0153\u0155\u0158\u0158\u015a\u015b\u015e\u015e\u0160\u0161"+
29389 		"\u0163\u0163\u0167\u0167\u016d\u016d\u016f\u0170\u0175\u0176\u017c\u017f"+
29390 		"\u0187\u0188\u018a\u019d\u019f\u01a2\u01a5\u01ab\u01af\u01b3\u01b5\u01b6"+
29391 		"\u01b9\u01b9\u01bb\u01bb\u01bd\u01c6\u01ca\u01d0\u01d2\u01d2\u01d7\u01d8"+
29392 		"\u01dd\u01de\u01e0\u01e0\u01e2\u01e5\u01e7\u01e9\u01ed\u01ed\u01ef\u01ef"+
29393 		"\u01f2\u01f4\u01f9\u01fd\u01ff\u0203\u0207\u020d\u020f\u020f\u0212\u0213"+
29394 		"\u0215\u0216\u0219\u021b\u021e\u0221\u0226\u0226\u0229\u022a\u022c\u022e"+
29395 		"\u0231\u0235\u0238\u0238\u023a\u023a\u023d\u023d\u0241\u0247\u024a\u024a"+
29396 		"\u024f\u024f\u0251\u0251\u0253\u0254\u0256\u025a\u025e\u025e\u0260\u0262"+
29397 		"\u0265\u0266\u0268\u0268\u026a\u026a\u026d\u0273\u0275\u0275\u0279\u027b"+
29398 		"\u027e\u027e\u0285\u0285\u0288\u0288\u028a\u028e\u0295\u0297\u0299\u0299"+
29399 		"\u029b\u029b\u029d\u029e\u02a0\u02a0\u02a3\u02a7\u02a9\u02a9\u02ac\u02b1"+
29400 		"\u02b3\u02b6\u02d2\u02d8\u02da\u02db\u02dd\u02e2\u02e6\u02e6\u02e9\u02e9"+
29401 		"\u02eb\u02eb\u02ee\u02f2\u02f4\u02f5\u02fa\u02fa\u02ff\u02ff\u0301\u0301"+
29402 		"\u0304\u0306\u030b\u030c\u0311\u0311\u0313\u0314\u0316\u031a\u0320\u0322"+
29403 		"\u0324\u0324\u0326\u0327\u0329\u032a\u0003\u0000\u00f6\u00f6\u0250\u0250"+
29404 		"\u0280\u0280 \u0000[[gguv\u0084\u0084\u0086\u0086\u008a\u008a\u0094\u0095"+
29405 		"\u00a4\u00a4\u00bf\u00bf\u00d7\u00d7\u00e5\u00e5\u010d\u010d\u010f\u010f"+
29406 		"\u012b\u012b\u012e\u012e\u013c\u013c\u0148\u0148\u0166\u0166\u01d1\u01d1"+
29407 		"\u020e\u020e\u0211\u0211\u023b\u023b\u024c\u024c\u025f\u025f\u0269\u0269"+
29408 		"\u0282\u0282\u0287\u0287\u02a1\u02a1\u02a8\u02a8\u02ed\u02ed\u02f6\u02f7"+
29409 		"\u0325\u0325\t\u0000\u00f0\u00f0\u0104\u0104\u01d3\u01d3\u0218\u0218\u021c"+
29410 		"\u021c\u0237\u0237\u0248\u0248\u024e\u024e\u02b2\u02b2\u0004\u0000\u0121"+
29411 		"\u0121\u0178\u0178\u0205\u0206\u027c\u027c\u0003\u0000\u0121\u0121\u0178"+
29412 		"\u0178\u027c\u027c\u0002\u0000\u01e8\u01e8\u0323\u0323\u0002\u0000\u0012"+
29413 		"\u0012%\'\u0002\u0000NNff\u0001\u0000\u02d2\u02d3\u0003\u0000\u00c9\u00c9"+
29414 		"\u0146\u0146\u0300\u0300\u0002\u0000\u010f\u010f\u020e\u020e\u0002\u0000"+
29415 		"\u0003\u0003VV\u0002\u0000\u0004\u0004\u01f0\u01f0\u0002\u0000\u0005\u0005"+
29416 		"\u01d6\u01d6\u0004\u0000\u0100\u0100\u01dc\u01dc\u02ec\u02ec\u02fa\u02fa"+
29417 		"\u0002\u0000RRWW\u0002\u0000\u0017\u0017++\u0001\u0000\u0017\u001c\u0002"+
29418 		"\u0000\u0230\u0230\u025d\u025d\u0001\u0000,-\u0002\u0000\u00e1\u00e1\u00ec"+
29419 		"\u00ec\u0003\u0000/2aacc\u0002\u0000\u0222\u0222\u0264\u0264\u0005\u0000"+
29420 		"\u00ac\u00ac\u00ca\u00ca\u0204\u0204\u0223\u0223\u0267\u0267\u0002\u0000"+
29421 		"\u0165\u0165\u016a\u016a\u0002\u0000\u0108\u0108\u0168\u0168\u0002\u0000"+
29422 		"\u0107\u0107\u0167\u0167\u0002\u0000((\u034f\u034f\u0002\u0000\u013a\u013a"+
29423 		"\u024f\u024f\u0003\u0000\u00fd\u00fd\u0220\u0220\u0306\u0306\u0001\u0000"+
29424 		"\u0282\u0284\u0001\u0000\u02fc\u02fe\u0001\u000067\u0003\u0000qq\u016b"+
29425 		"\u016b\u02e8\u02e8\n\u0000\u00ba\u00be\u0134\u0137\u01b3\u01b3\u01b6\u01b8"+
29426 		"\u01be\u01be\u021e\u021e\u026e\u026e\u0274\u0274\u0319\u0319\u0329\u032a"+
29427 		"\u0007\u0000ii\u014a\u014a\u0150\u0150\u01ad\u01ad\u01b4\u01b4\u0289\u0289"+
29428 		"\u02e4\u02e4\u0003\u0000\u00c1\u00c1\u0109\u010a\u01df\u01df\u0001\u0000"+
29429 		"op\u0002\u0000\u0181\u0181\u01ac\u01ac\u0001\u0000\u0183\u0184\u0006\u0000"+
29430 		"\u011b\u011d\u015e\u015e\u0175\u0175\u01bf\u01c1\u020b\u020c\u0279\u0279"+
29431 		"\u0003\u0000\u0282\u0282\u02fc\u02fc\u032b\u032b\u0002\u0000\u0080\u0080"+
29432 		"\u0082\u0082\u0002\u0000\u00b0\u00b0\u0179\u017a\u0003\u0000\u00c3\u00c3"+
29433 		"\u00dd\u00dd\u0109\u0109\u0003\u0000\u00c3\u00c3\u00d3\u00d3\u01b0\u01b0"+
29434 		"\u0002\u0000ZZ\u00cb\u00cb\u0002\u0000RR\u00d4\u00d4\u0002\u0000\u0178"+
29435 		"\u0178\u01d9\u01d9\u0c3e\u0000\u0202\u0001\u0000\u0000\u0000\u0002\u0204"+
29436 		"\u0001\u0000\u0000\u0000\u0004\u0216\u0001\u0000\u0000\u0000\u0006\u0220"+
29437 		"\u0001\u0000\u0000\u0000\b\u0231\u0001\u0000\u0000\u0000\n\u023b\u0001"+
29438 		"\u0000\u0000\u0000\f\u023d\u0001\u0000\u0000\u0000\u000e\u0247\u0001\u0000"+
29439 		"\u0000\u0000\u0010\u0254\u0001\u0000\u0000\u0000\u0012\u0262\u0001\u0000"+
29440 		"\u0000\u0000\u0014\u0267\u0001\u0000\u0000\u0000\u0016\u0273\u0001\u0000"+
29441 		"\u0000\u0000\u0018\u0283\u0001\u0000\u0000\u0000\u001a\u0288\u0001\u0000"+
29442 		"\u0000\u0000\u001c\u028d\u0001\u0000\u0000\u0000\u001e\u02a5\u0001\u0000"+
29443 		"\u0000\u0000 \u02aa\u0001\u0000\u0000\u0000\"\u02ac\u0001\u0000\u0000"+
29444 		"\u0000$\u02af\u0001\u0000\u0000\u0000&\u02bf\u0001\u0000\u0000\u0000("+
29445 		"\u02c7\u0001\u0000\u0000\u0000*\u02db\u0001\u0000\u0000\u0000,\u02e3\u0001"+
29446 		"\u0000\u0000\u0000.\u02f2\u0001\u0000\u0000\u00000\u02f5\u0001\u0000\u0000"+
29447 		"\u00002\u0306\u0001\u0000\u0000\u00004\u031f\u0001\u0000\u0000\u00006"+
29448 		"\u0321\u0001\u0000\u0000\u00008\u032e\u0001\u0000\u0000\u0000:\u0330\u0001"+
29449 		"\u0000\u0000\u0000<\u034a\u0001\u0000\u0000\u0000>\u034d\u0001\u0000\u0000"+
29450 		"\u0000@\u0350\u0001\u0000\u0000\u0000B\u035a\u0001\u0000\u0000\u0000D"+
29451 		"\u0366\u0001\u0000\u0000\u0000F\u0378\u0001\u0000\u0000\u0000H\u037a\u0001"+
29452 		"\u0000\u0000\u0000J\u037e\u0001\u0000\u0000\u0000L\u038f\u0001\u0000\u0000"+
29453 		"\u0000N\u0391\u0001\u0000\u0000\u0000P\u0396\u0001\u0000\u0000\u0000R"+
29454 		"\u039b\u0001\u0000\u0000\u0000T\u03a0\u0001\u0000\u0000\u0000V\u03a8\u0001"+
29455 		"\u0000\u0000\u0000X\u03b5\u0001\u0000\u0000\u0000Z\u03d9\u0001\u0000\u0000"+
29456 		"\u0000\\\u03db\u0001\u0000\u0000\u0000^\u03e7\u0001\u0000\u0000\u0000"+
29457 		"`\u03ef\u0001\u0000\u0000\u0000b\u0412\u0001\u0000\u0000\u0000d\u0419"+
29458 		"\u0001\u0000\u0000\u0000f\u041b\u0001\u0000\u0000\u0000h\u042c\u0001\u0000"+
29459 		"\u0000\u0000j\u0435\u0001\u0000\u0000\u0000l\u0437\u0001\u0000\u0000\u0000"+
29460 		"n\u043a\u0001\u0000\u0000\u0000p\u0448\u0001\u0000\u0000\u0000r\u044b"+
29461 		"\u0001\u0000\u0000\u0000t\u045a\u0001\u0000\u0000\u0000v\u045e\u0001\u0000"+
29462 		"\u0000\u0000x\u0460\u0001\u0000\u0000\u0000z\u0469\u0001\u0000\u0000\u0000"+
29463 		"|\u046d\u0001\u0000\u0000\u0000~\u0475\u0001\u0000\u0000\u0000\u0080\u0483"+
29464 		"\u0001\u0000\u0000\u0000\u0082\u04a9\u0001\u0000\u0000\u0000\u0084\u04b7"+
29465 		"\u0001\u0000\u0000\u0000\u0086\u04ba\u0001\u0000\u0000\u0000\u0088\u04be"+
29466 		"\u0001\u0000\u0000\u0000\u008a\u04c3\u0001\u0000\u0000\u0000\u008c\u04c5"+
29467 		"\u0001\u0000\u0000\u0000\u008e\u04c8\u0001\u0000\u0000\u0000\u0090\u04cc"+
29468 		"\u0001\u0000\u0000\u0000\u0092\u04d4\u0001\u0000\u0000\u0000\u0094\u04d6"+
29469 		"\u0001\u0000\u0000\u0000\u0096\u04df\u0001\u0000\u0000\u0000\u0098\u04e1"+
29470 		"\u0001\u0000\u0000\u0000\u009a\u04e8\u0001\u0000\u0000\u0000\u009c\u04eb"+
29471 		"\u0001\u0000\u0000\u0000\u009e\u04ef\u0001\u0000\u0000\u0000\u00a0\u04f3"+
29472 		"\u0001\u0000\u0000\u0000\u00a2\u04fa\u0001\u0000\u0000\u0000\u00a4\u0500"+
29473 		"\u0001\u0000\u0000\u0000\u00a6\u0502\u0001\u0000\u0000\u0000\u00a8\u0506"+
29474 		"\u0001\u0000\u0000\u0000\u00aa\u0512\u0001\u0000\u0000\u0000\u00ac\u0514"+
29475 		"\u0001\u0000\u0000\u0000\u00ae\u0516\u0001\u0000\u0000\u0000\u00b0\u0518"+
29476 		"\u0001\u0000\u0000\u0000\u00b2\u051a\u0001\u0000\u0000\u0000\u00b4\u051c"+
29477 		"\u0001\u0000\u0000\u0000\u00b6\u0521\u0001\u0000\u0000\u0000\u00b8\u0523"+
29478 		"\u0001\u0000\u0000\u0000\u00ba\u0527\u0001\u0000\u0000\u0000\u00bc\u052c"+
29479 		"\u0001\u0000\u0000\u0000\u00be\u052e\u0001\u0000\u0000\u0000\u00c0\u053b"+
29480 		"\u0001\u0000\u0000\u0000\u00c2\u053d\u0001\u0000\u0000\u0000\u00c4\u0546"+
29481 		"\u0001\u0000\u0000\u0000\u00c6\u0550\u0001\u0000\u0000\u0000\u00c8\u0559"+
29482 		"\u0001\u0000\u0000\u0000\u00ca\u0565\u0001\u0000\u0000\u0000\u00cc\u0567"+
29483 		"\u0001\u0000\u0000\u0000\u00ce\u0572\u0001\u0000\u0000\u0000\u00d0\u0574"+
29484 		"\u0001\u0000\u0000\u0000\u00d2\u0577\u0001\u0000\u0000\u0000\u00d4\u0579"+
29485 		"\u0001\u0000\u0000\u0000\u00d6\u0584\u0001\u0000\u0000\u0000\u00d8\u0586"+
29486 		"\u0001\u0000\u0000\u0000\u00da\u058e\u0001\u0000\u0000\u0000\u00dc\u0597"+
29487 		"\u0001\u0000\u0000\u0000\u00de\u059b\u0001\u0000\u0000\u0000\u00e0\u059d"+
29488 		"\u0001\u0000\u0000\u0000\u00e2\u059f\u0001\u0000\u0000\u0000\u00e4\u05a1"+
29489 		"\u0001\u0000\u0000\u0000\u00e6\u05a3\u0001\u0000\u0000\u0000\u00e8\u05ad"+
29490 		"\u0001\u0000\u0000\u0000\u00ea\u05af\u0001\u0000\u0000\u0000\u00ec\u05ba"+
29491 		"\u0001\u0000\u0000\u0000\u00ee\u05bf\u0001\u0000\u0000\u0000\u00f0\u05c3"+
29492 		"\u0001\u0000\u0000\u0000\u00f2\u05c5\u0001\u0000\u0000\u0000\u00f4\u05ca"+
29493 		"\u0001\u0000\u0000\u0000\u00f6\u05d1\u0001\u0000\u0000\u0000\u00f8\u05d8"+
29494 		"\u0001\u0000\u0000\u0000\u00fa\u05dc\u0001\u0000\u0000\u0000\u00fc\u05de"+
29495 		"\u0001\u0000\u0000\u0000\u00fe\u05e0\u0001\u0000\u0000\u0000\u0100\u05e2"+
29496 		"\u0001\u0000\u0000\u0000\u0102\u05ea\u0001\u0000\u0000\u0000\u0104\u05f2"+
29497 		"\u0001\u0000\u0000\u0000\u0106\u05fa\u0001\u0000\u0000\u0000\u0108\u05fc"+
29498 		"\u0001\u0000\u0000\u0000\u010a\u05fe\u0001\u0000\u0000\u0000\u010c\u0600"+
29499 		"\u0001\u0000\u0000\u0000\u010e\u0602\u0001\u0000\u0000\u0000\u0110\u0604"+
29500 		"\u0001\u0000\u0000\u0000\u0112\u0606\u0001\u0000\u0000\u0000\u0114\u0608"+
29501 		"\u0001\u0000\u0000\u0000\u0116\u060e\u0001\u0000\u0000\u0000\u0118\u0610"+
29502 		"\u0001\u0000\u0000\u0000\u011a\u0615\u0001\u0000\u0000\u0000\u011c\u0617"+
29503 		"\u0001\u0000\u0000\u0000\u011e\u061e\u0001\u0000\u0000\u0000\u0120\u0620"+
29504 		"\u0001\u0000\u0000\u0000\u0122\u0622\u0001\u0000\u0000\u0000\u0124\u0627"+
29505 		"\u0001\u0000\u0000\u0000\u0126\u0629\u0001\u0000\u0000\u0000\u0128\u062d"+
29506 		"\u0001\u0000\u0000\u0000\u012a\u062f\u0001\u0000\u0000\u0000\u012c\u0631"+
29507 		"\u0001\u0000\u0000\u0000\u012e\u063b\u0001\u0000\u0000\u0000\u0130\u063d"+
29508 		"\u0001\u0000\u0000\u0000\u0132\u063f\u0001\u0000\u0000\u0000\u0134\u0647"+
29509 		"\u0001\u0000\u0000\u0000\u0136\u0659\u0001\u0000\u0000\u0000\u0138\u065b"+
29510 		"\u0001\u0000\u0000\u0000\u013a\u065d\u0001\u0000\u0000\u0000\u013c\u065f"+
29511 		"\u0001\u0000\u0000\u0000\u013e\u0684\u0001\u0000\u0000\u0000\u0140\u0686"+
29512 		"\u0001\u0000\u0000\u0000\u0142\u06bf\u0001\u0000\u0000\u0000\u0144\u06c1"+
29513 		"\u0001\u0000\u0000\u0000\u0146\u0727\u0001\u0000\u0000\u0000\u0148\u0733"+
29514 		"\u0001\u0000\u0000\u0000\u014a\u0739\u0001\u0000\u0000\u0000\u014c\u073e"+
29515 		"\u0001\u0000\u0000\u0000\u014e\u0747\u0001\u0000\u0000\u0000\u0150\u0754"+
29516 		"\u0001\u0000\u0000\u0000\u0152\u0756\u0001\u0000\u0000\u0000\u0154\u0767"+
29517 		"\u0001\u0000\u0000\u0000\u0156\u0793\u0001\u0000\u0000\u0000\u0158\u07b5"+
29518 		"\u0001\u0000\u0000\u0000\u015a\u07b7\u0001\u0000\u0000\u0000\u015c\u07b9"+
29519 		"\u0001\u0000\u0000\u0000\u015e\u07bb\u0001\u0000\u0000\u0000\u0160\u07c0"+
29520 		"\u0001\u0000\u0000\u0000\u0162\u07d8\u0001\u0000\u0000\u0000\u0164\u07e9"+
29521 		"\u0001\u0000\u0000\u0000\u0166\u07eb\u0001\u0000\u0000\u0000\u0168\u07ed"+
29522 		"\u0001\u0000\u0000\u0000\u016a\u07fe\u0001\u0000\u0000\u0000\u016c\u0800"+
29523 		"\u0001\u0000\u0000\u0000\u016e\u0805\u0001\u0000\u0000\u0000\u0170\u084a"+
29524 		"\u0001\u0000\u0000\u0000\u0172\u084c\u0001\u0000\u0000\u0000\u0174\u0851"+
29525 		"\u0001\u0000\u0000\u0000\u0176\u0857\u0001\u0000\u0000\u0000\u0178\u0861"+
29526 		"\u0001\u0000\u0000\u0000\u017a\u0863\u0001\u0000\u0000\u0000\u017c\u087d"+
29527 		"\u0001\u0000\u0000\u0000\u017e\u088d\u0001\u0000\u0000\u0000\u0180\u08b9"+
29528 		"\u0001\u0000\u0000\u0000\u0182\u08bb\u0001\u0000\u0000\u0000\u0184\u08d8"+
29529 		"\u0001\u0000\u0000\u0000\u0186\u08da\u0001\u0000\u0000\u0000\u0188\u08e1"+
29530 		"\u0001\u0000\u0000\u0000\u018a\u0907\u0001\u0000\u0000\u0000\u018c\u0909"+
29531 		"\u0001\u0000\u0000\u0000\u018e\u090e\u0001\u0000\u0000\u0000\u0190\u091a"+
29532 		"\u0001\u0000\u0000\u0000\u0192\u0928\u0001\u0000\u0000\u0000\u0194\u0931"+
29533 		"\u0001\u0000\u0000\u0000\u0196\u0940\u0001\u0000\u0000\u0000\u0198\u0942"+
29534 		"\u0001\u0000\u0000\u0000\u019a\u0970\u0001\u0000\u0000\u0000\u019c\u0972"+
29535 		"\u0001\u0000\u0000\u0000\u019e\u0993\u0001\u0000\u0000\u0000\u01a0\u0995"+
29536 		"\u0001\u0000\u0000\u0000\u01a2\u09a3\u0001\u0000\u0000\u0000\u01a4\u09a5"+
29537 		"\u0001\u0000\u0000\u0000\u01a6\u09a7\u0001\u0000\u0000\u0000\u01a8\u09ac"+
29538 		"\u0001\u0000\u0000\u0000\u01aa\u09af\u0001\u0000\u0000\u0000\u01ac\u09b2"+
29539 		"\u0001\u0000\u0000\u0000\u01ae\u09b5\u0001\u0000\u0000\u0000\u01b0\u09b7"+
29540 		"\u0001\u0000\u0000\u0000\u01b2\u09c3\u0001\u0000\u0000\u0000\u01b4\u0a5b"+
29541 		"\u0001\u0000\u0000\u0000\u01b6\u0a5d\u0001\u0000\u0000\u0000\u01b8\u0a6b"+
29542 		"\u0001\u0000\u0000\u0000\u01ba\u0a6f\u0001\u0000\u0000\u0000\u01bc\u0a72"+
29543 		"\u0001\u0000\u0000\u0000\u01be\u0a76\u0001\u0000\u0000\u0000\u01c0\u0a7c"+
29544 		"\u0001\u0000\u0000\u0000\u01c2\u0a8e\u0001\u0000\u0000\u0000\u01c4\u0a96"+
29545 		"\u0001\u0000\u0000\u0000\u01c6\u0a9e\u0001\u0000\u0000\u0000\u01c8\u0aa3"+
29546 		"\u0001\u0000\u0000\u0000\u01ca\u0aa6\u0001\u0000\u0000\u0000\u01cc\u0aaf"+
29547 		"\u0001\u0000\u0000\u0000\u01ce\u0ab8\u0001\u0000\u0000\u0000\u01d0\u0ac0"+
29548 		"\u0001\u0000\u0000\u0000\u01d2\u0ac8\u0001\u0000\u0000\u0000\u01d4\u0aca"+
29549 		"\u0001\u0000\u0000\u0000\u01d6\u0acc\u0001\u0000\u0000\u0000\u01d8\u0ace"+
29550 		"\u0001\u0000\u0000\u0000\u01da\u0ad0\u0001\u0000\u0000\u0000\u01dc\u0ad4"+
29551 		"\u0001\u0000\u0000\u0000\u01de\u0ad7\u0001\u0000\u0000\u0000\u01e0\u0adc"+
29552 		"\u0001\u0000\u0000\u0000\u01e2\u0ae9\u0001\u0000\u0000\u0000\u01e4\u0aed"+
29553 		"\u0001\u0000\u0000\u0000\u01e6\u0af0\u0001\u0000\u0000\u0000\u01e8\u0af2"+
29554 		"\u0001\u0000\u0000\u0000\u01ea\u0af4\u0001\u0000\u0000\u0000\u01ec\u0af6"+
29555 		"\u0001\u0000\u0000\u0000\u01ee\u0af8\u0001\u0000\u0000\u0000\u01f0\u0afa"+
29556 		"\u0001\u0000\u0000\u0000\u01f2\u0afc\u0001\u0000\u0000\u0000\u01f4\u01f9"+
29557 		"\u0003,\u0016\u0000\u01f5\u01f9\u0003\u0002\u0001\u0000\u01f6\u01f9\u0003"+
29558 		"\u0016\u000b\u0000\u01f7\u01f9\u0003$\u0012\u0000\u01f8\u01f4\u0001\u0000"+
29559 		"\u0000\u0000\u01f8\u01f5\u0001\u0000\u0000\u0000\u01f8\u01f6\u0001\u0000"+
29560 		"\u0000\u0000\u01f8\u01f7\u0001\u0000\u0000\u0000\u01f9\u01ff\u0001\u0000"+
29561 		"\u0000\u0000\u01fa\u01fc\u0005*\u0000\u0000\u01fb\u01fd\u0005\u0000\u0000"+
29562 		"\u0001\u01fc\u01fb\u0001\u0000\u0000\u0000\u01fc\u01fd\u0001\u0000\u0000"+
29563 		"\u0000\u01fd\u0200\u0001\u0000\u0000\u0000\u01fe\u0200\u0005\u0000\u0000"+
29564 		"\u0001\u01ff\u01fa\u0001\u0000\u0000\u0000\u01ff\u01fe\u0001\u0000\u0000"+
29565 		"\u0000\u0200\u0203\u0001\u0000\u0000\u0000\u0201\u0203\u0005\u0000\u0000"+
29566 		"\u0001\u0202\u01f8\u0001\u0000\u0000\u0000\u0202\u0201\u0001\u0000\u0000"+
29567 		"\u0000\u0203\u0001\u0001\u0000\u0000\u0000\u0204\u0205\u0005\u0146\u0000"+
29568 		"\u0000\u0205\u0207\u0003\u0004\u0002\u0000\u0206\u0208\u0005\u0152\u0000"+
29569 		"\u0000\u0207\u0206\u0001\u0000\u0000\u0000\u0207\u0208\u0001\u0000\u0000"+
29570 		"\u0000\u0208\u0209\u0001\u0000\u0000\u0000\u0209\u020b\u0003\u00dcn\u0000"+
29571 		"\u020a\u020c\u0003\\.\u0000\u020b\u020a\u0001\u0000\u0000\u0000\u020b"+
29572 		"\u020c\u0001\u0000\u0000\u0000\u020c\u0210\u0001\u0000\u0000\u0000\u020d"+
29573 		"\u0211\u0003\u0006\u0003\u0000\u020e\u0211\u0003\u001c\u000e\u0000\u020f"+
29574 		"\u0211\u0003\u000e\u0007\u0000\u0210\u020d\u0001\u0000\u0000\u0000\u0210"+
29575 		"\u020e\u0001\u0000\u0000\u0000\u0210\u020f\u0001\u0000\u0000\u0000\u0211"+
29576 		"\u0213\u0001\u0000\u0000\u0000\u0212\u0214\u0003\u0010\b\u0000\u0213\u0212"+
29577 		"\u0001\u0000\u0000\u0000\u0213\u0214\u0001\u0000\u0000\u0000\u0214\u0003"+
29578 		"\u0001\u0000\u0000\u0000\u0215\u0217\u0007\u0000\u0000\u0000\u0216\u0215"+
29579 		"\u0001\u0000\u0000\u0000\u0216\u0217\u0001\u0000\u0000\u0000\u0217\u0219"+
29580 		"\u0001\u0000\u0000\u0000\u0218\u021a\u0005\u013a\u0000\u0000\u0219\u0218"+
29581 		"\u0001\u0000\u0000\u0000\u0219\u021a\u0001\u0000\u0000\u0000\u021a\u0005"+
29582 		"\u0001\u0000\u0000\u0000\u021b\u021d\u0005\u001e\u0000\u0000\u021c\u021e"+
29583 		"\u0003\b\u0004\u0000\u021d\u021c\u0001\u0000\u0000\u0000\u021d\u021e\u0001"+
29584 		"\u0000\u0000\u0000\u021e\u021f\u0001\u0000\u0000\u0000\u021f\u0221\u0005"+
29585 		"\u001f\u0000\u0000\u0220\u021b\u0001\u0000\u0000\u0000\u0220\u0221\u0001"+
29586 		"\u0000\u0000\u0000\u0221\u0222\u0001\u0000\u0000\u0000\u0222\u022c\u0007"+
29587 		"\u0001\u0000\u0000\u0223\u0228\u0003\u001e\u000f\u0000\u0224\u0225\u0005"+
29588 		"$\u0000\u0000\u0225\u0227\u0003\u001e\u000f\u0000\u0226\u0224\u0001\u0000"+
29589 		"\u0000\u0000\u0227\u022a\u0001\u0000\u0000\u0000\u0228\u0226\u0001\u0000"+
29590 		"\u0000\u0000\u0228\u0229\u0001\u0000\u0000\u0000\u0229\u022d\u0001\u0000"+
29591 		"\u0000\u0000\u022a\u0228\u0001\u0000\u0000\u0000\u022b\u022d\u0003@ \u0000"+
29592 		"\u022c\u0223\u0001\u0000\u0000\u0000\u022c\u022b\u0001\u0000\u0000\u0000"+
29593 		"\u022d\u022f\u0001\u0000\u0000\u0000\u022e\u0230\u0003\u0012\t\u0000\u022f"+
29594 		"\u022e\u0001\u0000\u0000\u0000\u022f\u0230\u0001\u0000\u0000\u0000\u0230"+
29595 		"\u0007\u0001\u0000\u0000\u0000\u0231\u0236\u0003\n\u0005\u0000\u0232\u0233"+
29596 		"\u0005$\u0000\u0000\u0233\u0235\u0003\n\u0005\u0000\u0234\u0232\u0001"+
29597 		"\u0000\u0000\u0000\u0235\u0238\u0001\u0000\u0000\u0000\u0236\u0234\u0001"+
29598 		"\u0000\u0000\u0000\u0236\u0237\u0001\u0000\u0000\u0000\u0237\t\u0001\u0000"+
29599 		"\u0000\u0000\u0238\u0236\u0001\u0000\u0000\u0000\u0239\u023c\u0003\u014c"+
29600 		"\u00a6\u0000\u023a\u023c\u0003\f\u0006\u0000\u023b\u0239\u0001\u0000\u0000"+
29601 		"\u0000\u023b\u023a\u0001\u0000\u0000\u0000\u023c\u000b\u0001\u0000\u0000"+
29602 		"\u0000\u023d\u023e\u0003\u00aaU\u0000\u023e\u0242\u0005\u0013\u0000\u0000"+
29603 		"\u023f\u0240\u0003\u00aaU\u0000\u0240\u0241\u0005\u0013\u0000\u0000\u0241"+
29604 		"\u0243\u0001\u0000\u0000\u0000\u0242\u023f\u0001\u0000\u0000\u0000\u0242"+
29605 		"\u0243\u0001\u0000\u0000\u0000\u0243\u0244\u0001\u0000\u0000\u0000\u0244"+
29606 		"\u0245\u0005\u0010\u0000\u0000\u0245\r\u0001\u0000\u0000\u0000\u0246\u0248"+
29607 		"\u0003\u0012\t\u0000\u0247\u0246\u0001\u0000\u0000\u0000\u0247\u0248\u0001"+
29608 		"\u0000\u0000\u0000\u0248\u024e\u0001\u0000\u0000\u0000\u0249\u024b\u0005"+
29609 		"\u001e\u0000\u0000\u024a\u024c\u0003\b\u0004\u0000\u024b\u024a\u0001\u0000"+
29610 		"\u0000\u0000\u024b\u024c\u0001\u0000\u0000\u0000\u024c\u024d\u0001\u0000"+
29611 		"\u0000\u0000\u024d\u024f\u0005\u001f\u0000\u0000\u024e\u0249\u0001\u0000"+
29612 		"\u0000\u0000\u024e\u024f\u0001\u0000\u0000\u0000\u024f\u0250\u0001\u0000"+
29613 		"\u0000\u0000\u0250\u0251\u0003,\u0016\u0000\u0251\u000f\u0001\u0000\u0000"+
29614 		"\u0000\u0252\u0253\u0005Y\u0000\u0000\u0253\u0255\u0003\u00aaU\u0000\u0254"+
29615 		"\u0252\u0001\u0000\u0000\u0000\u0254\u0255\u0001\u0000\u0000\u0000\u0255"+
29616 		"\u0256\u0001\u0000\u0000\u0000\u0256\u0257\u0005\u01e6\u0000\u0000\u0257"+
29617 		"\u0258\u0005\u00dc\u0000\u0000\u0258\u0259\u0005\u0161\u0000\u0000\u0259"+
29618 		"\u025a\u0005\u0300\u0000\u0000\u025a\u025f\u0003\u001a\r\u0000\u025b\u025c"+
29619 		"\u0005$\u0000\u0000\u025c\u025e\u0003\u001a\r\u0000\u025d\u025b\u0001"+
29620 		"\u0000\u0000\u0000\u025e\u0261\u0001\u0000\u0000\u0000\u025f\u025d\u0001"+
29621 		"\u0000\u0000\u0000\u025f\u0260\u0001\u0000\u0000\u0000\u0260\u0011\u0001"+
29622 		"\u0000\u0000\u0000\u0261\u025f\u0001\u0000\u0000\u0000\u0262\u0263\u0005"+
29623 		"Y\u0000\u0000\u0263\u0265\u0003\u00fc~\u0000\u0264\u0266\u0003\u0014\n"+
29624 		"\u0000\u0265\u0264\u0001\u0000\u0000\u0000\u0265\u0266\u0001\u0000\u0000"+
29625 		"\u0000\u0266\u0013\u0001\u0000\u0000\u0000\u0267\u0268\u0005\u001e\u0000"+
29626 		"\u0000\u0268\u026d\u0003\u00fc~\u0000\u0269\u026a\u0005$\u0000\u0000\u026a"+
29627 		"\u026c\u0003\u00fc~\u0000\u026b\u0269\u0001\u0000\u0000\u0000\u026c\u026f"+
29628 		"\u0001\u0000\u0000\u0000\u026d\u026b\u0001\u0000\u0000\u0000\u026d\u026e"+
29629 		"\u0001\u0000\u0000\u0000\u026e\u0270\u0001\u0000\u0000\u0000\u026f\u026d"+
29630 		"\u0001\u0000\u0000\u0000\u0270\u0271\u0005\u001f\u0000\u0000\u0271\u0015"+
29631 		"\u0001\u0000\u0000\u0000\u0272\u0274\u0003B!\u0000\u0273\u0272\u0001\u0000"+
29632 		"\u0000\u0000\u0273\u0274\u0001\u0000\u0000\u0000\u0274\u0275\u0001\u0000"+
29633 		"\u0000\u0000\u0275\u0276\u0005\u0300\u0000\u0000\u0276\u0277\u0003\u0018"+
29634 		"\f\u0000\u0277\u0278\u0003T*\u0000\u0278\u027a\u0003\u001c\u000e\u0000"+
29635 		"\u0279\u027b\u0003l6\u0000\u027a\u0279\u0001\u0000\u0000\u0000\u027a\u027b"+
29636 		"\u0001\u0000\u0000\u0000\u027b\u027d\u0001\u0000\u0000\u0000\u027c\u027e"+
29637 		"\u0003\u01b0\u00d8\u0000\u027d\u027c\u0001\u0000\u0000\u0000\u027d\u027e"+
29638 		"\u0001\u0000\u0000\u0000\u027e\u0280\u0001\u0000\u0000\u0000\u027f\u0281"+
29639 		"\u0003r9\u0000\u0280\u027f\u0001\u0000\u0000\u0000\u0280\u0281\u0001\u0000"+
29640 		"\u0000\u0000\u0281\u0017\u0001\u0000\u0000\u0000\u0282\u0284\u0005\u0186"+
29641 		"\u0000\u0000\u0283\u0282\u0001\u0000\u0000\u0000\u0283\u0284\u0001\u0000"+
29642 		"\u0000\u0000\u0284\u0286\u0001\u0000\u0000\u0000\u0285\u0287\u0005\u013a"+
29643 		"\u0000\u0000\u0286\u0285\u0001\u0000\u0000\u0000\u0286\u0287\u0001\u0000"+
29644 		"\u0000\u0000\u0287\u0019\u0001\u0000\u0000\u0000\u0288\u0289\u0003\u014c"+
29645 		"\u00a6\u0000\u0289\u028a\u0005\u0017\u0000\u0000\u028a\u028b\u0003 \u0010"+
29646 		"\u0000\u028b\u001b\u0001\u0000\u0000\u0000\u028c\u028e\u0003\u0012\t\u0000"+
29647 		"\u028d\u028c\u0001\u0000\u0000\u0000\u028d\u028e\u0001\u0000\u0000\u0000"+
29648 		"\u028e\u028f\u0001\u0000\u0000\u0000\u028f\u0290\u0005\u027d\u0000\u0000"+
29649 		"\u0290\u0295\u0003\u001a\r\u0000\u0291\u0292\u0005$\u0000\u0000\u0292"+
29650 		"\u0294\u0003\u001a\r\u0000\u0293\u0291\u0001\u0000\u0000\u0000\u0294\u0297"+
29651 		"\u0001\u0000\u0000\u0000\u0295\u0293\u0001\u0000\u0000\u0000\u0295\u0296"+
29652 		"\u0001\u0000\u0000\u0000\u0296\u001d\u0001\u0000\u0000\u0000\u0297\u0295"+
29653 		"\u0001\u0000\u0000\u0000\u0298\u0299\u0005\u001e\u0000\u0000\u0299\u029e"+
29654 		"\u0003 \u0010\u0000\u029a\u029b\u0005$\u0000\u0000\u029b\u029d\u0003 "+
29655 		"\u0010\u0000\u029c\u029a\u0001\u0000\u0000\u0000\u029d\u02a0\u0001\u0000"+
29656 		"\u0000\u0000\u029e\u029c\u0001\u0000\u0000\u0000\u029e\u029f\u0001\u0000"+
29657 		"\u0000\u0000\u029f\u02a1\u0001\u0000\u0000\u0000\u02a0\u029e\u0001\u0000"+
29658 		"\u0000\u0000\u02a1\u02a2\u0005\u001f\u0000\u0000\u02a2\u02a6\u0001\u0000"+
29659 		"\u0000\u0000\u02a3\u02a4\u0005\u001e\u0000\u0000\u02a4\u02a6\u0005\u001f"+
29660 		"\u0000\u0000\u02a5\u0298\u0001\u0000\u0000\u0000\u02a5\u02a3\u0001\u0000"+
29661 		"\u0000\u0000\u02a6\u001f\u0001\u0000\u0000\u0000\u02a7\u02ab\u0003\"\u0011"+
29662 		"\u0000\u02a8\u02ab\u0003\u0134\u009a\u0000\u02a9\u02ab\u0005\u00c3\u0000"+
29663 		"\u0000\u02aa\u02a7\u0001\u0000\u0000\u0000\u02aa\u02a8\u0001\u0000\u0000"+
29664 		"\u0000\u02aa\u02a9\u0001\u0000\u0000\u0000\u02ab!\u0001\u0000\u0000\u0000"+
29665 		"\u02ac\u02ad\u0005B\u0000\u0000\u02ad\u02ae\u0003\u0098L\u0000\u02ae#"+
29666 		"\u0001\u0000\u0000\u0000\u02af\u02b0\u0005\u00c9\u0000\u0000\u02b0\u02b3"+
29667 		"\u0003&\u0013\u0000\u02b1\u02b4\u0003(\u0014\u0000\u02b2\u02b4\u0003*"+
29668 		"\u0015\u0000\u02b3\u02b1\u0001\u0000\u0000\u0000\u02b3\u02b2\u0001\u0000"+
29669 		"\u0000\u0000\u02b4\u02b6\u0001\u0000\u0000\u0000\u02b5\u02b7\u0003l6\u0000"+
29670 		"\u02b6\u02b5\u0001\u0000\u0000\u0000\u02b6\u02b7\u0001\u0000\u0000\u0000"+
29671 		"\u02b7\u02b9\u0001\u0000\u0000\u0000\u02b8\u02ba\u0003\u01b0\u00d8\u0000"+
29672 		"\u02b9\u02b8\u0001\u0000\u0000\u0000\u02b9\u02ba\u0001\u0000\u0000\u0000"+
29673 		"\u02ba\u02bc\u0001\u0000\u0000\u0000\u02bb\u02bd\u0003r9\u0000\u02bc\u02bb"+
29674 		"\u0001\u0000\u0000\u0000\u02bc\u02bd\u0001\u0000\u0000\u0000\u02bd%\u0001"+
29675 		"\u0000\u0000\u0000\u02be\u02c0\u0005\u0186\u0000\u0000\u02bf\u02be\u0001"+
29676 		"\u0000\u0000\u0000\u02bf\u02c0\u0001\u0000\u0000\u0000\u02c0\u02c2\u0001"+
29677 		"\u0000\u0000\u0000\u02c1\u02c3\u0005\u0220\u0000\u0000\u02c2\u02c1\u0001"+
29678 		"\u0000\u0000\u0000\u02c2\u02c3\u0001\u0000\u0000\u0000\u02c3\u02c5\u0001"+
29679 		"\u0000\u0000\u0000\u02c4\u02c6\u0005\u013a\u0000\u0000\u02c5\u02c4\u0001"+
29680 		"\u0000\u0000\u0000\u02c5\u02c6\u0001\u0000\u0000\u0000\u02c6\'\u0001\u0000"+
29681 		"\u0000\u0000\u02c7\u02c8\u0005\u0115\u0000\u0000\u02c8\u02cd\u0003\u00dc"+
29682 		"n\u0000\u02c9\u02cb\u0005Y\u0000\u0000\u02ca\u02c9\u0001\u0000\u0000\u0000"+
29683 		"\u02ca\u02cb\u0001\u0000\u0000\u0000\u02cb\u02cc\u0001\u0000\u0000\u0000"+
29684 		"\u02cc\u02ce\u0003\u00fc~\u0000\u02cd\u02ca\u0001\u0000\u0000\u0000\u02cd"+
29685 		"\u02ce\u0001\u0000\u0000\u0000\u02ce\u02d0\u0001\u0000\u0000\u0000\u02cf"+
29686 		"\u02d1\u0003\\.\u0000\u02d0\u02cf\u0001\u0000\u0000\u0000\u02d0\u02d1"+
29687 		"\u0001\u0000\u0000\u0000\u02d1)\u0001\u0000\u0000\u0000\u02d2\u02d3\u0003"+
29688 		"\u0090H\u0000\u02d3\u02d4\u0005\u0115\u0000\u0000\u02d4\u02d5\u0003T*"+
29689 		"\u0000\u02d5\u02dc\u0001\u0000\u0000\u0000\u02d6\u02d7\u0005\u0115\u0000"+
29690 		"\u0000\u02d7\u02d8\u0003\u0090H\u0000\u02d8\u02d9\u0005\u0307\u0000\u0000"+
29691 		"\u02d9\u02da\u0003T*\u0000\u02da\u02dc\u0001\u0000\u0000\u0000\u02db\u02d2"+
29692 		"\u0001\u0000\u0000\u0000\u02db\u02d6\u0001\u0000\u0000\u0000\u02dc+\u0001"+
29693 		"\u0000\u0000\u0000\u02dd\u02df\u00030\u0018\u0000\u02de\u02e0\u0003\u0086"+
29694 		"C\u0000\u02df\u02de\u0001\u0000\u0000\u0000\u02df\u02e0\u0001\u0000\u0000"+
29695 		"\u0000\u02e0\u02e4\u0001\u0000\u0000\u0000\u02e1\u02e4\u00036\u001b\u0000"+
29696 		"\u02e2\u02e4\u0003.\u0017\u0000\u02e3\u02dd\u0001\u0000\u0000\u0000\u02e3"+
29697 		"\u02e1\u0001\u0000\u0000\u0000\u02e3\u02e2\u0001\u0000\u0000\u0000\u02e4"+
29698 		"-\u0001\u0000\u0000\u0000\u02e5\u02e6\u0005\u001e\u0000\u0000\u02e6\u02e7"+
29699 		"\u0003.\u0017\u0000\u02e7\u02e8\u0005\u001f\u0000\u0000\u02e8\u02f3\u0001"+
29700 		"\u0000\u0000\u0000\u02e9\u02ea\u00030\u0018\u0000\u02ea\u02ec\u0003\u0082"+
29701 		"A\u0000\u02eb\u02ed\u0003\u0086C\u0000\u02ec\u02eb\u0001\u0000\u0000\u0000"+
29702 		"\u02ec\u02ed\u0001\u0000\u0000\u0000\u02ed\u02f3\u0001\u0000\u0000\u0000"+
29703 		"\u02ee\u02ef\u00030\u0018\u0000\u02ef\u02f0\u0003\u0086C\u0000\u02f0\u02f1"+
29704 		"\u0003\u0082A\u0000\u02f1\u02f3\u0001\u0000\u0000\u0000\u02f2\u02e5\u0001"+
29705 		"\u0000\u0000\u0000\u02f2\u02e9\u0001\u0000\u0000\u0000\u02f2\u02ee\u0001"+
29706 		"\u0000\u0000\u0000\u02f3/\u0001\u0000\u0000\u0000\u02f4\u02f6\u0003B!"+
29707 		"\u0000\u02f5\u02f4\u0001\u0000\u0000\u0000\u02f5\u02f6\u0001\u0000\u0000"+
29708 		"\u0000\u02f6\u02f9\u0001\u0000\u0000\u0000\u02f7\u02fa\u00032\u0019\u0000"+
29709 		"\u02f8\u02fa\u00036\u001b\u0000\u02f9\u02f7\u0001\u0000\u0000\u0000\u02f9"+
29710 		"\u02f8\u0001\u0000\u0000\u0000\u02fa\u02fc\u0001\u0000\u0000\u0000\u02fb"+
29711 		"\u02fd\u0003\u01b0\u00d8\u0000\u02fc\u02fb\u0001\u0000\u0000\u0000\u02fc"+
29712 		"\u02fd\u0001\u0000\u0000\u0000\u02fd\u02ff\u0001\u0000\u0000\u0000\u02fe"+
29713 		"\u0300\u0003r9\u0000\u02ff\u02fe\u0001\u0000\u0000\u0000\u02ff\u0300\u0001"+
29714 		"\u0000\u0000\u0000\u03001\u0001\u0000\u0000\u0000\u0301\u0302\u0006\u0019"+
29715 		"\uffff\uffff\u0000\u0302\u0307\u00038\u001c\u0000\u0303\u0304\u00036\u001b"+
29716 		"\u0000\u0304\u0305\u00034\u001a\u0000\u0305\u0307\u0001\u0000\u0000\u0000"+
29717 		"\u0306\u0301\u0001\u0000\u0000\u0000\u0306\u0303\u0001\u0000\u0000\u0000"+
29718 		"\u0307\u030c\u0001\u0000\u0000\u0000\u0308\u0309\n\u0001\u0000\u0000\u0309"+
29719 		"\u030b\u00034\u001a\u0000\u030a\u0308\u0001\u0000\u0000\u0000\u030b\u030e"+
29720 		"\u0001\u0000\u0000\u0000\u030c\u030a\u0001\u0000\u0000\u0000\u030c\u030d"+
29721 		"\u0001\u0000\u0000\u0000\u030d3\u0001\u0000\u0000\u0000\u030e\u030c\u0001"+
29722 		"\u0000\u0000\u0000\u030f\u0311\u0005\u02f8\u0000\u0000\u0310\u0312\u0003"+
29723 		"\u01ee\u00f7\u0000\u0311\u0310\u0001\u0000\u0000\u0000\u0311\u0312\u0001"+
29724 		"\u0000\u0000\u0000\u0312\u0315\u0001\u0000\u0000\u0000\u0313\u0316\u0003"+
29725 		"8\u001c\u0000\u0314\u0316\u00036\u001b\u0000\u0315\u0313\u0001\u0000\u0000"+
29726 		"\u0000\u0315\u0314\u0001\u0000\u0000\u0000\u0316\u0320\u0001\u0000\u0000"+
29727 		"\u0000\u0317\u0319\u0005\u00f3\u0000\u0000\u0318\u031a\u0003\u01ee\u00f7"+
29728 		"\u0000\u0319\u0318\u0001\u0000\u0000\u0000\u0319\u031a\u0001\u0000\u0000"+
29729 		"\u0000\u031a\u031d\u0001\u0000\u0000\u0000\u031b\u031e\u00038\u001c\u0000"+
29730 		"\u031c\u031e\u00036\u001b\u0000\u031d\u031b\u0001\u0000\u0000\u0000\u031d"+
29731 		"\u031c\u0001\u0000\u0000\u0000\u031e\u0320\u0001\u0000\u0000\u0000\u031f"+
29732 		"\u030f\u0001\u0000\u0000\u0000\u031f\u0317\u0001\u0000\u0000\u0000\u0320"+
29733 		"5\u0001\u0000\u0000\u0000\u0321\u0327\u0005\u001e\u0000\u0000\u0322\u0328"+
29734 		"\u00036\u001b\u0000\u0323\u0325\u00030\u0018\u0000\u0324\u0326\u0003\u0086"+
29735 		"C\u0000\u0325\u0324\u0001\u0000\u0000\u0000\u0325\u0326\u0001\u0000\u0000"+
29736 		"\u0000\u0326\u0328\u0001\u0000\u0000\u0000\u0327\u0322\u0001\u0000\u0000"+
29737 		"\u0000\u0327\u0323\u0001\u0000\u0000\u0000\u0328\u0329\u0001\u0000\u0000"+
29738 		"\u0000\u0329\u032a\u0005\u001f\u0000\u0000\u032a7\u0001\u0000\u0000\u0000"+
29739 		"\u032b\u032f\u0003:\u001d\u0000\u032c\u032f\u0003>\u001f\u0000\u032d\u032f"+
29740 		"\u0003<\u001e\u0000\u032e\u032b\u0001\u0000\u0000\u0000\u032e\u032c\u0001"+
29741 		"\u0000\u0000\u0000\u032e\u032d\u0001\u0000\u0000\u0000\u032f9\u0001\u0000"+
29742 		"\u0000\u0000\u0330\u0334\u0005\u0276\u0000\u0000\u0331\u0333\u0003F#\u0000"+
29743 		"\u0332\u0331\u0001\u0000\u0000\u0000\u0333\u0336\u0001\u0000\u0000\u0000"+
29744 		"\u0334\u0332\u0001\u0000\u0000\u0000\u0334\u0335\u0001\u0000\u0000\u0000"+
29745 		"\u0335\u0337\u0001\u0000\u0000\u0000\u0336\u0334\u0001\u0000\u0000\u0000"+
29746 		"\u0337\u0339\u0003J%\u0000\u0338\u033a\u0003\u0082A\u0000\u0339\u0338"+
29747 		"\u0001\u0000\u0000\u0000\u0339\u033a\u0001\u0000\u0000\u0000\u033a\u033c"+
29748 		"\u0001\u0000\u0000\u0000\u033b\u033d\u0003R)\u0000\u033c\u033b\u0001\u0000"+
29749 		"\u0000\u0000\u033c\u033d\u0001\u0000\u0000\u0000\u033d\u033f\u0001\u0000"+
29750 		"\u0000\u0000\u033e\u0340\u0003l6\u0000\u033f\u033e\u0001\u0000\u0000\u0000"+
29751 		"\u033f\u0340\u0001\u0000\u0000\u0000\u0340\u0342\u0001\u0000\u0000\u0000"+
29752 		"\u0341\u0343\u0003n7\u0000\u0342\u0341\u0001\u0000\u0000\u0000\u0342\u0343"+
29753 		"\u0001\u0000\u0000\u0000\u0343\u0345\u0001\u0000\u0000\u0000\u0344\u0346"+
29754 		"\u0003p8\u0000\u0345\u0344\u0001\u0000\u0000\u0000\u0345\u0346\u0001\u0000"+
29755 		"\u0000\u0000\u0346\u0348\u0001\u0000\u0000\u0000\u0347\u0349\u0003x<\u0000"+
29756 		"\u0348\u0347\u0001\u0000\u0000\u0000\u0348\u0349\u0001\u0000\u0000\u0000"+
29757 		"\u0349;\u0001\u0000\u0000\u0000\u034a\u034b\u0005\u02d2\u0000\u0000\u034b"+
29758 		"\u034c\u0003\u00dcn\u0000\u034c=\u0001\u0000\u0000\u0000\u034d\u034e\u0005"+
29759 		"\u030d\u0000\u0000\u034e\u034f\u0003@ \u0000\u034f?\u0001\u0000\u0000"+
29760 		"\u0000\u0350\u0351\u0005\u0263\u0000\u0000\u0351\u0357\u0003\u001e\u000f"+
29761 		"\u0000\u0352\u0353\u0005$\u0000\u0000\u0353\u0354\u0005\u0263\u0000\u0000"+
29762 		"\u0354\u0356\u0003\u001e\u000f\u0000\u0355\u0352\u0001\u0000\u0000\u0000"+
29763 		"\u0356\u0359\u0001\u0000\u0000\u0000\u0357\u0355\u0001\u0000\u0000\u0000"+
29764 		"\u0357\u0358\u0001\u0000\u0000\u0000\u0358A\u0001\u0000\u0000\u0000\u0359"+
29765 		"\u0357\u0001\u0000\u0000\u0000\u035a\u035c\u0005\u031f\u0000\u0000\u035b"+
29766 		"\u035d\u0005\u022b\u0000\u0000\u035c\u035b\u0001\u0000\u0000\u0000\u035c"+
29767 		"\u035d\u0001\u0000\u0000\u0000\u035d\u035e\u0001\u0000\u0000\u0000\u035e"+
29768 		"\u0363\u0003D\"\u0000\u035f\u0360\u0005$\u0000\u0000\u0360\u0362\u0003"+
29769 		"D\"\u0000\u0361\u035f\u0001\u0000\u0000\u0000\u0362\u0365\u0001\u0000"+
29770 		"\u0000\u0000\u0363\u0361\u0001\u0000\u0000\u0000\u0363\u0364\u0001\u0000"+
29771 		"\u0000\u0000\u0364C\u0001\u0000\u0000\u0000\u0365\u0363\u0001\u0000\u0000"+
29772 		"\u0000\u0366\u036b\u0003\u00aaU\u0000\u0367\u0368\u0005\u001e\u0000\u0000"+
29773 		"\u0368\u0369\u0003\u0104\u0082\u0000\u0369\u036a\u0005\u001f\u0000\u0000"+
29774 		"\u036a\u036c\u0001\u0000\u0000\u0000\u036b\u0367\u0001\u0000\u0000\u0000"+
29775 		"\u036b\u036c\u0001\u0000\u0000\u0000\u036c\u036d\u0001\u0000\u0000\u0000"+
29776 		"\u036d\u036e\u0005Y\u0000\u0000\u036e\u036f\u0003|>\u0000\u036fE\u0001"+
29777 		"\u0000\u0000\u0000\u0370\u0379\u0003H$\u0000\u0371\u0379\u0005\u012f\u0000"+
29778 		"\u0000\u0372\u0379\u0005\u02ab\u0000\u0000\u0373\u0379\u0005\u029c\u0000"+
29779 		"\u0000\u0374\u0379\u0005\u0298\u0000\u0000\u0375\u0379\u0005\u0299\u0000"+
29780 		"\u0000\u0376\u0379\u0005\u029b\u0000\u0000\u0377\u0379\u0005\u029a\u0000"+
29781 		"\u0000\u0378\u0370\u0001\u0000\u0000\u0000\u0378\u0371\u0001\u0000\u0000"+
29782 		"\u0000\u0378\u0372\u0001\u0000\u0000\u0000\u0378\u0373\u0001\u0000\u0000"+
29783 		"\u0000\u0378\u0374\u0001\u0000\u0000\u0000\u0378\u0375\u0001\u0000\u0000"+
29784 		"\u0000\u0378\u0376\u0001\u0000\u0000\u0000\u0378\u0377\u0001\u0000\u0000"+
29785 		"\u0000\u0379G\u0001\u0000\u0000\u0000\u037a\u037b\u0007\u0002\u0000\u0000"+
29786 		"\u037bI\u0001\u0000\u0000\u0000\u037c\u037f\u0003N\'\u0000\u037d\u037f"+
29787 		"\u0003L&\u0000\u037e\u037c\u0001\u0000\u0000\u0000\u037e\u037d\u0001\u0000"+
29788 		"\u0000\u0000\u037f\u0384\u0001\u0000\u0000\u0000\u0380\u0381\u0005$\u0000"+
29789 		"\u0000\u0381\u0383\u0003L&\u0000\u0382\u0380\u0001\u0000\u0000\u0000\u0383"+
29790 		"\u0386\u0001\u0000\u0000\u0000\u0384\u0382\u0001\u0000\u0000\u0000\u0384"+
29791 		"\u0385\u0001\u0000\u0000\u0000\u0385K\u0001\u0000\u0000\u0000\u0386\u0384"+
29792 		"\u0001\u0000\u0000\u0000\u0387\u038c\u0003\u0134\u009a\u0000\u0388\u038a"+
29793 		"\u0005Y\u0000\u0000\u0389\u0388\u0001\u0000\u0000\u0000\u0389\u038a\u0001"+
29794 		"\u0000\u0000\u0000\u038a\u038b\u0001\u0000\u0000\u0000\u038b\u038d\u0003"+
29795 		"\u00fc~\u0000\u038c\u0389\u0001\u0000\u0000\u0000\u038c\u038d\u0001\u0000"+
29796 		"\u0000\u0000\u038d\u0390\u0001\u0000\u0000\u0000\u038e\u0390\u0003P(\u0000"+
29797 		"\u038f\u0387\u0001\u0000\u0000\u0000\u038f\u038e\u0001\u0000\u0000\u0000"+
29798 		"\u0390M\u0001\u0000\u0000\u0000\u0391\u0392\u0005\u0010\u0000\u0000\u0392"+
29799 		"O\u0001\u0000\u0000\u0000\u0393\u0394\u0003\u00aaU\u0000\u0394\u0395\u0005"+
29800 		"\u0013\u0000\u0000\u0395\u0397\u0001\u0000\u0000\u0000\u0396\u0393\u0001"+
29801 		"\u0000\u0000\u0000\u0396\u0397\u0001\u0000\u0000\u0000\u0397\u0398\u0001"+
29802 		"\u0000\u0000\u0000\u0398\u0399\u0003\u00aaU\u0000\u0399\u039a\u0005\u0014"+
29803 		"\u0000\u0000\u039aQ\u0001\u0000\u0000\u0000\u039b\u039e\u0005\u0115\u0000"+
29804 		"\u0000\u039c\u039f\u0005\u00da\u0000\u0000\u039d\u039f\u0003T*\u0000\u039e"+
29805 		"\u039c\u0001\u0000\u0000\u0000\u039e\u039d\u0001\u0000\u0000\u0000\u039f"+
29806 		"S\u0001\u0000\u0000\u0000\u03a0\u03a5\u0003X,\u0000\u03a1\u03a2\u0005"+
29807 		"$\u0000\u0000\u03a2\u03a4\u0003X,\u0000\u03a3\u03a1\u0001\u0000\u0000"+
29808 		"\u0000\u03a4\u03a7\u0001\u0000\u0000\u0000\u03a5\u03a3\u0001\u0000\u0000"+
29809 		"\u0000\u03a5\u03a6\u0001\u0000\u0000\u0000\u03a6U\u0001\u0000\u0000\u0000"+
29810 		"\u03a7\u03a5\u0001\u0000\u0000\u0000\u03a8\u03ac\u0003Z-\u0000\u03a9\u03ab"+
29811 		"\u0003b1\u0000\u03aa\u03a9\u0001\u0000\u0000\u0000\u03ab\u03ae\u0001\u0000"+
29812 		"\u0000\u0000\u03ac\u03aa\u0001\u0000\u0000\u0000\u03ac\u03ad\u0001\u0000"+
29813 		"\u0000\u0000\u03adW\u0001\u0000\u0000\u0000\u03ae\u03ac\u0001\u0000\u0000"+
29814 		"\u0000\u03af\u03b6\u0003Z-\u0000\u03b0\u03b1\u0005 \u0000\u0000\u03b1"+
29815 		"\u03b2\u0005\u01e4\u0000\u0000\u03b2\u03b3\u0003V+\u0000\u03b3\u03b4\u0005"+
29816 		"!\u0000\u0000\u03b4\u03b6\u0001\u0000\u0000\u0000\u03b5\u03af\u0001\u0000"+
29817 		"\u0000\u0000\u03b5\u03b0\u0001\u0000\u0000\u0000\u03b6\u03ba\u0001\u0000"+
29818 		"\u0000\u0000\u03b7\u03b9\u0003b1\u0000\u03b8\u03b7\u0001\u0000\u0000\u0000"+
29819 		"\u03b9\u03bc\u0001\u0000\u0000\u0000\u03ba\u03b8\u0001\u0000\u0000\u0000"+
29820 		"\u03ba\u03bb\u0001\u0000\u0000\u0000\u03bbY\u0001\u0000\u0000\u0000\u03bc"+
29821 		"\u03ba\u0001\u0000\u0000\u0000\u03bd\u03bf\u0003\u00dcn\u0000\u03be\u03c0"+
29822 		"\u0003\\.\u0000\u03bf\u03be\u0001\u0000\u0000\u0000\u03bf\u03c0\u0001"+
29823 		"\u0000\u0000\u0000\u03c0\u03c5\u0001\u0000\u0000\u0000\u03c1\u03c3\u0005"+
29824 		"Y\u0000\u0000\u03c2\u03c1\u0001\u0000\u0000\u0000\u03c2\u03c3\u0001\u0000"+
29825 		"\u0000\u0000\u03c3\u03c4\u0001\u0000\u0000\u0000\u03c4\u03c6\u0003\u00fc"+
29826 		"~\u0000\u03c5\u03c2\u0001\u0000\u0000\u0000\u03c5\u03c6\u0001\u0000\u0000"+
29827 		"\u0000\u03c6\u03c8\u0001\u0000\u0000\u0000\u03c7\u03c9\u0003^/\u0000\u03c8"+
29828 		"\u03c7\u0001\u0000\u0000\u0000\u03c8\u03c9\u0001\u0000\u0000\u0000\u03c9"+
29829 		"\u03da\u0001\u0000\u0000\u0000\u03ca\u03cc\u0003|>\u0000\u03cb\u03cd\u0005"+
29830 		"Y\u0000\u0000\u03cc\u03cb\u0001\u0000\u0000\u0000\u03cc\u03cd\u0001\u0000"+
29831 		"\u0000\u0000\u03cd\u03ce\u0001\u0000\u0000\u0000\u03ce\u03d3\u0003\u00fc"+
29832 		"~\u0000\u03cf\u03d0\u0005\u001e\u0000\u0000\u03d0\u03d1\u0003\u0104\u0082"+
29833 		"\u0000\u03d1\u03d2\u0005\u001f\u0000\u0000\u03d2\u03d4\u0001\u0000\u0000"+
29834 		"\u0000\u03d3\u03cf\u0001\u0000\u0000\u0000\u03d3\u03d4\u0001\u0000\u0000"+
29835 		"\u0000\u03d4\u03da\u0001\u0000\u0000\u0000\u03d5\u03d6\u0005\u001e\u0000"+
29836 		"\u0000\u03d6\u03d7\u0003T*\u0000\u03d7\u03d8\u0005\u001f\u0000\u0000\u03d8"+
29837 		"\u03da\u0001\u0000\u0000\u0000\u03d9\u03bd\u0001\u0000\u0000\u0000\u03d9"+
29838 		"\u03ca\u0001\u0000\u0000\u0000\u03d9\u03d5\u0001\u0000\u0000\u0000\u03da"+
29839 		"[\u0001\u0000\u0000\u0000\u03db\u03dc\u0005\u01fe\u0000\u0000\u03dc\u03dd"+
29840 		"\u0005\u001e\u0000\u0000\u03dd\u03e2\u0003\u00aaU\u0000\u03de\u03df\u0005"+
29841 		"$\u0000\u0000\u03df\u03e1\u0003\u00aaU\u0000\u03e0\u03de\u0001\u0000\u0000"+
29842 		"\u0000\u03e1\u03e4\u0001\u0000\u0000\u0000\u03e2\u03e0\u0001\u0000\u0000"+
29843 		"\u0000\u03e2\u03e3\u0001\u0000\u0000\u0000\u03e3\u03e5\u0001\u0000\u0000"+
29844 		"\u0000\u03e4\u03e2\u0001\u0000\u0000\u0000\u03e5\u03e6\u0005\u001f\u0000"+
29845 		"\u0000\u03e6]\u0001\u0000\u0000\u0000\u03e7\u03ec\u0003`0\u0000\u03e8"+
29846 		"\u03e9\u0005$\u0000\u0000\u03e9\u03eb\u0003`0\u0000\u03ea\u03e8\u0001"+
29847 		"\u0000\u0000\u0000\u03eb\u03ee\u0001\u0000\u0000\u0000\u03ec\u03ea\u0001"+
29848 		"\u0000\u0000\u0000\u03ec\u03ed\u0001\u0000\u0000\u0000\u03ed_\u0001\u0000"+
29849 		"\u0000\u0000\u03ee\u03ec\u0001\u0000\u0000\u0000\u03ef\u03f0\u0007\u0003"+
29850 		"\u0000\u0000\u03f0\u03f9\u0007\u0004\u0000\u0000\u03f1\u03f7\u0005\u0110"+
29851 		"\u0000\u0000\u03f2\u03f8\u0005\u015d\u0000\u0000\u03f3\u03f4\u0005\u01f1"+
29852 		"\u0000\u0000\u03f4\u03f8\u0005t\u0000\u0000\u03f5\u03f6\u0005\u0124\u0000"+
29853 		"\u0000\u03f6\u03f8\u0005t\u0000\u0000\u03f7\u03f2\u0001\u0000\u0000\u0000"+
29854 		"\u03f7\u03f3\u0001\u0000\u0000\u0000\u03f7\u03f5\u0001\u0000\u0000\u0000"+
29855 		"\u03f8\u03fa\u0001\u0000\u0000\u0000\u03f9\u03f1\u0001\u0000\u0000\u0000"+
29856 		"\u03f9\u03fa\u0001\u0000\u0000\u0000\u03fa\u03fb\u0001\u0000\u0000\u0000"+
29857 		"\u03fb\u03fc\u0005\u001e\u0000\u0000\u03fc\u0401\u0003\u00e0p\u0000\u03fd"+
29858 		"\u03fe\u0005$\u0000\u0000\u03fe\u0400\u0003\u00e0p\u0000\u03ff\u03fd\u0001"+
29859 		"\u0000\u0000\u0000\u0400\u0403\u0001\u0000\u0000\u0000\u0401\u03ff\u0001"+
29860 		"\u0000\u0000\u0000\u0401\u0402\u0001\u0000\u0000\u0000\u0402\u0404\u0001"+
29861 		"\u0000\u0000\u0000\u0403\u0401\u0001\u0000\u0000\u0000\u0404\u0405\u0005"+
29862 		"\u001f\u0000\u0000\u0405a\u0001\u0000\u0000\u0000\u0406\u0407\u0003d2"+
29863 		"\u0000\u0407\u0409\u0003X,\u0000\u0408\u040a\u0003j5\u0000\u0409\u0408"+
29864 		"\u0001\u0000\u0000\u0000\u0409\u040a\u0001\u0000\u0000\u0000\u040a\u0413"+
29865 		"\u0001\u0000\u0000\u0000\u040b\u040c\u0003f3\u0000\u040c\u040d\u0003X"+
29866 		",\u0000\u040d\u040e\u0003j5\u0000\u040e\u0413\u0001\u0000\u0000\u0000"+
29867 		"\u040f\u0410\u0003h4\u0000\u0410\u0411\u0003Z-\u0000\u0411\u0413\u0001"+
29868 		"\u0000\u0000\u0000\u0412\u0406\u0001\u0000\u0000\u0000\u0412\u040b\u0001"+
29869 		"\u0000\u0000\u0000\u0412\u040f\u0001\u0000\u0000\u0000\u0413c\u0001\u0000"+
29870 		"\u0000\u0000\u0414\u0416\u0007\u0005\u0000\u0000\u0415\u0414\u0001\u0000"+
29871 		"\u0000\u0000\u0415\u0416\u0001\u0000\u0000\u0000\u0416\u0417\u0001\u0000"+
29872 		"\u0000\u0000\u0417\u041a\u0005\u015d\u0000\u0000\u0418\u041a\u0005\u02ab"+
29873 		"\u0000\u0000\u0419\u0415\u0001\u0000\u0000\u0000\u0419\u0418\u0001\u0000"+
29874 		"\u0000\u0000\u041ae\u0001\u0000\u0000\u0000\u041b\u041d\u0007\u0006\u0000"+
29875 		"\u0000\u041c\u041e\u0005\u01f6\u0000\u0000\u041d\u041c\u0001\u0000\u0000"+
29876 		"\u0000\u041d\u041e\u0001\u0000\u0000\u0000\u041e\u041f\u0001\u0000\u0000"+
29877 		"\u0000\u041f\u0420\u0005\u015d\u0000\u0000\u0420g\u0001\u0000\u0000\u0000"+
29878 		"\u0421\u0423\u0005\u01c9\u0000\u0000\u0422\u0424\u0005\u0143\u0000\u0000"+
29879 		"\u0423\u0422\u0001\u0000\u0000\u0000\u0423\u0424\u0001\u0000\u0000\u0000"+
29880 		"\u0424\u0425\u0001\u0000\u0000\u0000\u0425\u042d\u0005\u015d\u0000\u0000"+
29881 		"\u0426\u0427\u0005\u01c9\u0000\u0000\u0427\u0429\u0007\u0006\u0000\u0000"+
29882 		"\u0428\u042a\u0005\u01f6\u0000\u0000\u0429\u0428\u0001\u0000\u0000\u0000"+
29883 		"\u0429\u042a\u0001\u0000\u0000\u0000\u042a\u042b\u0001\u0000\u0000\u0000"+
29884 		"\u042b\u042d\u0005\u015d\u0000\u0000\u042c\u0421\u0001\u0000\u0000\u0000"+
29885 		"\u042c\u0426\u0001\u0000\u0000\u0000\u042di\u0001\u0000\u0000\u0000\u042e"+
29886 		"\u042f\u0005\u01e6\u0000\u0000\u042f\u0436\u0003\u0134\u009a\u0000\u0430"+
29887 		"\u0431\u0005\u0307\u0000\u0000\u0431\u0432\u0005\u001e\u0000\u0000\u0432"+
29888 		"\u0433\u0003\u0104\u0082\u0000\u0433\u0434\u0005\u001f\u0000\u0000\u0434"+
29889 		"\u0436\u0001\u0000\u0000\u0000\u0435\u042e\u0001\u0000\u0000\u0000\u0435"+
29890 		"\u0430\u0001\u0000\u0000\u0000\u0436k\u0001\u0000\u0000\u0000\u0437\u0438"+
29891 		"\u0005\u031c\u0000\u0000\u0438\u0439\u0003\u0134\u009a\u0000\u0439m\u0001"+
29892 		"\u0000\u0000\u0000\u043a\u043b\u0005\u0124\u0000\u0000\u043b\u043c\u0005"+
29893 		"t\u0000\u0000\u043c\u0441\u0003\u01b2\u00d9\u0000\u043d\u043e\u0005$\u0000"+
29894 		"\u0000\u043e\u0440\u0003\u01b2\u00d9\u0000\u043f\u043d\u0001\u0000\u0000"+
29895 		"\u0000\u0440\u0443\u0001\u0000\u0000\u0000\u0441\u043f\u0001\u0000\u0000"+
29896 		"\u0000\u0441\u0442\u0001\u0000\u0000\u0000\u0442\u0446\u0001\u0000\u0000"+
29897 		"\u0000\u0443\u0441\u0001\u0000\u0000\u0000\u0444\u0445\u0005\u031f\u0000"+
29898 		"\u0000\u0445\u0447\u0005\u0260\u0000\u0000\u0446\u0444\u0001\u0000\u0000"+
29899 		"\u0000\u0446\u0447\u0001\u0000\u0000\u0000\u0447o\u0001\u0000\u0000\u0000"+
29900 		"\u0448\u0449\u0005\u012d\u0000\u0000\u0449\u044a\u0003\u0134\u009a\u0000"+
29901 		"\u044aq\u0001\u0000\u0000\u0000\u044b\u0456\u0005\u0172\u0000\u0000\u044c"+
29902 		"\u044d\u0003v;\u0000\u044d\u044e\u0005$\u0000\u0000\u044e\u0450\u0001"+
29903 		"\u0000\u0000\u0000\u044f\u044c\u0001\u0000\u0000\u0000\u044f\u0450\u0001"+
29904 		"\u0000\u0000\u0000\u0450\u0451\u0001\u0000\u0000\u0000\u0451\u0457\u0003"+
29905 		"t:\u0000\u0452\u0453\u0003t:\u0000\u0453\u0454\u0005\u01e3\u0000\u0000"+
29906 		"\u0454\u0455\u0003v;\u0000\u0455\u0457\u0001\u0000\u0000\u0000\u0456\u044f"+
29907 		"\u0001\u0000\u0000\u0000\u0456\u0452\u0001\u0000\u0000\u0000\u0457s\u0001"+
29908 		"\u0000\u0000\u0000\u0458\u045b\u0003\u009cN\u0000\u0459\u045b\u0003\u0092"+
29909 		"I\u0000\u045a\u0458\u0001\u0000\u0000\u0000\u045a\u0459\u0001\u0000\u0000"+
29910 		"\u0000\u045bu\u0001\u0000\u0000\u0000\u045c\u045f\u0003\u009cN\u0000\u045d"+
29911 		"\u045f\u0003\u0092I\u0000\u045e\u045c\u0001\u0000\u0000\u0000\u045e\u045d"+
29912 		"\u0001\u0000\u0000\u0000\u045fw\u0001\u0000\u0000\u0000\u0460\u0461\u0005"+
29913 		"\u031e\u0000\u0000\u0461\u0466\u0003z=\u0000\u0462\u0463\u0005$\u0000"+
29914 		"\u0000\u0463\u0465\u0003z=\u0000\u0464\u0462\u0001\u0000\u0000\u0000\u0465"+
29915 		"\u0468\u0001\u0000\u0000\u0000\u0466\u0464\u0001\u0000\u0000\u0000\u0466"+
29916 		"\u0467\u0001\u0000\u0000\u0000\u0467y\u0001\u0000\u0000\u0000\u0468\u0466"+
29917 		"\u0001\u0000\u0000\u0000\u0469\u046a\u0003\u00aaU\u0000\u046a\u046b\u0005"+
29918 		"Y\u0000\u0000\u046b\u046c\u0003\u0160\u00b0\u0000\u046c{\u0001\u0000\u0000"+
29919 		"\u0000\u046d\u046e\u00036\u001b\u0000\u046e}\u0001\u0000\u0000\u0000\u046f"+
29920 		"\u0470\u0005\u02a2\u0000\u0000\u0470\u0471\u0005t\u0000\u0000\u0471\u0476"+
29921 		"\u0003\u0098L\u0000\u0472\u0473\u0005\u02d9\u0000\u0000\u0473\u0474\u0005"+
29922 		"t\u0000\u0000\u0474\u0476\u0003\u0098L\u0000\u0475\u046f\u0001\u0000\u0000"+
29923 		"\u0000\u0475\u0472\u0001\u0000\u0000\u0000\u0476\u007f\u0001\u0000\u0000"+
29924 		"\u0000\u0477\u0478\u0005\u02d9\u0000\u0000\u0478\u0479\u0005t\u0000\u0000"+
29925 		"\u0479\u0484\u0003\u0098L\u0000\u047a\u047c\u0005\u01ee\u0000\u0000\u047b"+
29926 		"\u047a\u0001\u0000\u0000\u0000\u047b\u047c\u0001\u0000\u0000\u0000\u047c"+
29927 		"\u047d\u0001\u0000\u0000\u0000\u047d\u047e\u0005\u00e3\u0000\u0000\u047e"+
29928 		"\u047f\u0005t\u0000\u0000\u047f\u0484\u0003\u0098L\u0000\u0480\u0481\u0005"+
29929 		"\u00ef\u0000\u0000\u0481\u0482\u0005t\u0000\u0000\u0482\u0484\u0003\u0098"+
29930 		"L\u0000\u0483\u0477\u0001\u0000\u0000\u0000\u0483\u047b\u0001\u0000\u0000"+
29931 		"\u0000\u0483\u0480\u0001\u0000\u0000\u0000\u0484\u0081\u0001\u0000\u0000"+
29932 		"\u0000\u0485\u0486\u0005\u0152\u0000\u0000\u0486\u048b\u0003\u00ba]\u0000"+
29933 		"\u0487\u0488\u0005$\u0000\u0000\u0488\u048a\u0003\u00ba]\u0000\u0489\u0487"+
29934 		"\u0001\u0000\u0000\u0000\u048a\u048d\u0001\u0000\u0000\u0000\u048b\u0489"+
29935 		"\u0001\u0000\u0000\u0000\u048b\u048c\u0001\u0000\u0000\u0000\u048c\u04aa"+
29936 		"\u0001\u0000\u0000\u0000\u048d\u048b\u0001\u0000\u0000\u0000\u048e\u048f"+
29937 		"\u0005\u0152\u0000\u0000\u048f\u0490\u0005\u00db\u0000\u0000\u0490\u04aa"+
29938 		"\u0003\u0098L\u0000\u0491\u0492\u0005\u0152\u0000\u0000\u0492\u0493\u0005"+
29939 		"\u01f7\u0000\u0000\u0493\u0497\u0003\u0098L\u0000\u0494\u0495\u0005\u0082"+
29940 		"\u0000\u0000\u0495\u0496\u0005\u027d\u0000\u0000\u0496\u0498\u0003\u00d6"+
29941 		"k\u0000\u0497\u0494\u0001\u0000\u0000\u0000\u0497\u0498\u0001\u0000\u0000"+
29942 		"\u0000\u0498\u049f\u0001\u0000\u0000\u0000\u0499\u049b\u0005\u0091\u0000"+
29943 		"\u0000\u049a\u049c\u0003\u0080@\u0000\u049b\u049a\u0001\u0000\u0000\u0000"+
29944 		"\u049c\u049d\u0001\u0000\u0000\u0000\u049d\u049b\u0001\u0000\u0000\u0000"+
29945 		"\u049d\u049e\u0001\u0000\u0000\u0000\u049e\u04a0\u0001\u0000\u0000\u0000"+
29946 		"\u049f\u0499\u0001\u0000\u0000\u0000\u049f\u04a0\u0001\u0000\u0000\u0000"+
29947 		"\u04a0\u04a7\u0001\u0000\u0000\u0000\u04a1\u04a3\u0005\u0174\u0000\u0000"+
29948 		"\u04a2\u04a4\u0003~?\u0000\u04a3\u04a2\u0001\u0000\u0000\u0000\u04a4\u04a5"+
29949 		"\u0001\u0000\u0000\u0000\u04a5\u04a3\u0001\u0000\u0000\u0000\u04a5\u04a6"+
29950 		"\u0001\u0000\u0000\u0000\u04a6\u04a8\u0001\u0000\u0000\u0000\u04a7\u04a1"+
29951 		"\u0001\u0000\u0000\u0000\u04a7\u04a8\u0001\u0000\u0000\u0000\u04a8\u04aa"+
29952 		"\u0001\u0000\u0000\u0000\u04a9\u0485\u0001\u0000\u0000\u0000\u04a9\u048e"+
29953 		"\u0001\u0000\u0000\u0000\u04a9\u0491\u0001\u0000\u0000\u0000\u04aa\u0083"+
29954 		"\u0001\u0000\u0000\u0000\u04ab\u04ac\u0005\u0110\u0000\u0000\u04ac\u04ae"+
29955 		"\u0003\u0088D\u0000\u04ad\u04af\u0003\u008cF\u0000\u04ae\u04ad\u0001\u0000"+
29956 		"\u0000\u0000\u04ae\u04af\u0001\u0000\u0000\u0000\u04af\u04b1\u0001\u0000"+
29957 		"\u0000\u0000\u04b0\u04b2\u0003\u008aE\u0000\u04b1\u04b0\u0001\u0000\u0000"+
29958 		"\u0000\u04b1\u04b2\u0001\u0000\u0000\u0000\u04b2\u04b8\u0001\u0000\u0000"+
29959 		"\u0000\u04b3\u04b4\u0005\u017b\u0000\u0000\u04b4\u04b5\u0005\u013d\u0000"+
29960 		"\u0000\u04b5\u04b6\u0005\u027e\u0000\u0000\u04b6\u04b8\u0005\u01bb\u0000"+
29961 		"\u0000\u04b7\u04ab\u0001\u0000\u0000\u0000\u04b7\u04b3\u0001\u0000\u0000"+
29962 		"\u0000\u04b8\u0085\u0001\u0000\u0000\u0000\u04b9\u04bb\u0003\u0084B\u0000"+
29963 		"\u04ba\u04b9\u0001\u0000\u0000\u0000\u04bb\u04bc\u0001\u0000\u0000\u0000"+
29964 		"\u04bc\u04ba\u0001\u0000\u0000\u0000\u04bc\u04bd\u0001\u0000\u0000\u0000"+
29965 		"\u04bd\u0087\u0001\u0000\u0000\u0000\u04be\u04bf\u0007\u0007\u0000\u0000"+
29966 		"\u04bf\u0089\u0001\u0000\u0000\u0000\u04c0\u04c1\u0005\u0286\u0000\u0000"+
29967 		"\u04c1\u04c4\u0005\u017c\u0000\u0000\u04c2\u04c4\u0005\u01d7\u0000\u0000"+
29968 		"\u04c3\u04c0\u0001\u0000\u0000\u0000\u04c3\u04c2\u0001\u0000\u0000\u0000"+
29969 		"\u04c4\u008b\u0001\u0000\u0000\u0000\u04c5\u04c6\u0005\u01e1\u0000\u0000"+
29970 		"\u04c6\u04c7\u0003\u0090H\u0000\u04c7\u008d\u0001\u0000\u0000\u0000\u04c8"+
29971 		"\u04ca\u0003\u00dcn\u0000\u04c9\u04cb\u0005\u0014\u0000\u0000\u04ca\u04c9"+
29972 		"\u0001\u0000\u0000\u0000\u04ca\u04cb\u0001\u0000\u0000\u0000\u04cb\u008f"+
29973 		"\u0001\u0000\u0000\u0000\u04cc\u04d1\u0003\u008eG\u0000\u04cd\u04ce\u0005"+
29974 		"$\u0000\u0000\u04ce\u04d0\u0003\u008eG\u0000\u04cf\u04cd\u0001\u0000\u0000"+
29975 		"\u0000\u04d0\u04d3\u0001\u0000\u0000\u0000\u04d1\u04cf\u0001\u0000\u0000"+
29976 		"\u0000\u04d1\u04d2\u0001\u0000\u0000\u0000\u04d2\u0091\u0001\u0000\u0000"+
29977 		"\u0000\u04d3\u04d1\u0001\u0000\u0000\u0000\u04d4\u04d5\u0005(\u0000\u0000"+
29978 		"\u04d5\u0093\u0001\u0000\u0000\u0000\u04d6\u04d7\u0007\b\u0000\u0000\u04d7"+
29979 		"\u0095\u0001\u0000\u0000\u0000\u04d8\u04e0\u0003\u009aM\u0000\u04d9\u04e0"+
29980 		"\u0003\u009cN\u0000\u04da\u04e0\u0003\u009eO\u0000\u04db\u04e0\u0003\u00a0"+
29981 		"P\u0000\u04dc\u04e0\u0003\u00a2Q\u0000\u04dd\u04e0\u0003\u00a4R\u0000"+
29982 		"\u04de\u04e0\u0003\u00a6S\u0000\u04df\u04d8\u0001\u0000\u0000\u0000\u04df"+
29983 		"\u04d9\u0001\u0000\u0000\u0000\u04df\u04da\u0001\u0000\u0000\u0000\u04df"+
29984 		"\u04db\u0001\u0000\u0000\u0000\u04df\u04dc\u0001\u0000\u0000\u0000\u04df"+
29985 		"\u04dd\u0001\u0000\u0000\u0000\u04df\u04de\u0001\u0000\u0000\u0000\u04e0"+
29986 		"\u0097\u0001\u0000\u0000\u0000\u04e1\u04e2\u0007\t\u0000\u0000\u04e2\u0099"+
29987 		"\u0001\u0000\u0000\u0000\u04e3\u04e5\u0007\n\u0000\u0000\u04e4\u04e3\u0001"+
29988 		"\u0000\u0000\u0000\u04e4\u04e5\u0001\u0000\u0000\u0000\u04e5\u04e6\u0001"+
29989 		"\u0000\u0000\u0000\u04e6\u04e9\u0003\u0098L\u0000\u04e7\u04e9\u0005\u034d"+
29990 		"\u0000\u0000\u04e8\u04e4\u0001\u0000\u0000\u0000\u04e8\u04e7\u0001\u0000"+
29991 		"\u0000\u0000\u04e9\u009b\u0001\u0000\u0000\u0000\u04ea\u04ec\u0007\u000b"+
29992 		"\u0000\u0000\u04eb\u04ea\u0001\u0000\u0000\u0000\u04eb\u04ec\u0001\u0000"+
29993 		"\u0000\u0000\u04ec\u04ed\u0001\u0000\u0000\u0000\u04ed\u04ee\u0005\u034f"+
29994 		"\u0000\u0000\u04ee\u009d\u0001\u0000\u0000\u0000\u04ef\u04f0\u0007\f\u0000"+
29995 		"\u0000\u04f0\u04f1\u0005\u034a\u0000\u0000\u04f1\u009f\u0001\u0000\u0000"+
29996 		"\u0000\u04f2\u04f4\u0005\u034e\u0000\u0000\u04f3\u04f2\u0001\u0000\u0000"+
29997 		"\u0000\u04f3\u04f4\u0001\u0000\u0000\u0000\u04f4\u04f5\u0001\u0000\u0000"+
29998 		"\u0000\u04f5\u04f7\u0005\u0353\u0000\u0000\u04f6\u04f8\u0003\u01de\u00ef"+
29999 		"\u0000\u04f7\u04f6\u0001\u0000\u0000\u0000\u04f7\u04f8\u0001\u0000\u0000"+
30000 		"\u0000\u04f8\u00a1\u0001\u0000\u0000\u0000\u04f9\u04fb\u0005\u034e\u0000"+
30001 		"\u0000\u04fa\u04f9\u0001\u0000\u0000\u0000\u04fa\u04fb\u0001\u0000\u0000"+
30002 		"\u0000\u04fb\u04fc\u0001\u0000\u0000\u0000\u04fc\u04fe\u0005\u0354\u0000"+
30003 		"\u0000\u04fd\u04ff\u0003\u01de\u00ef\u0000\u04fe\u04fd\u0001\u0000\u0000"+
30004 		"\u0000\u04fe\u04ff\u0001\u0000\u0000\u0000\u04ff\u00a3\u0001\u0000\u0000"+
30005 		"\u0000\u0500\u0501\u0007\r\u0000\u0000\u0501\u00a5\u0001\u0000\u0000\u0000"+
30006 		"\u0502\u0503\u0005\u01dc\u0000\u0000\u0503\u00a7\u0001\u0000\u0000\u0000"+
30007 		"\u0504\u0507\u0003\u00b6[\u0000\u0505\u0507\u0005j\u0000\u0000\u0506\u0504"+
30008 		"\u0001\u0000\u0000\u0000\u0506\u0505\u0001\u0000\u0000\u0000\u0507\u00a9"+
30009 		"\u0001\u0000\u0000\u0000\u0508\u0513\u0005\u0355\u0000\u0000\u0509\u0513"+
30010 		"\u0003\u00acV\u0000\u050a\u0513\u0003\u00aeW\u0000\u050b\u0513\u0003\u00b0"+
30011 		"X\u0000\u050c\u0513\u0003\u00b2Y\u0000\u050d\u0513\u0003\u00b4Z\u0000"+
30012 		"\u050e\u0513\u0003\u0094J\u0000\u050f\u0513\u0005\u034b\u0000\u0000\u0510"+
30013 		"\u0513\u0005\u034e\u0000\u0000\u0511\u0513\u0005\u034c\u0000\u0000\u0512"+
30014 		"\u0508\u0001\u0000\u0000\u0000\u0512\u0509\u0001\u0000\u0000\u0000\u0512"+
30015 		"\u050a\u0001\u0000\u0000\u0000\u0512\u050b\u0001\u0000\u0000\u0000\u0512"+
30016 		"\u050c\u0001\u0000\u0000\u0000\u0512\u050d\u0001\u0000\u0000\u0000\u0512"+
30017 		"\u050e\u0001\u0000\u0000\u0000\u0512\u050f\u0001\u0000\u0000\u0000\u0512"+
30018 		"\u0510\u0001\u0000\u0000\u0000\u0512\u0511\u0001\u0000\u0000\u0000\u0513"+
30019 		"\u00ab\u0001\u0000\u0000\u0000\u0514\u0515\u0007\u000e\u0000\u0000\u0515"+
30020 		"\u00ad\u0001\u0000\u0000\u0000\u0516\u0517\u0007\u000f\u0000\u0000\u0517"+
30021 		"\u00af\u0001\u0000\u0000\u0000\u0518\u0519\u0007\u0010\u0000\u0000\u0519"+
30022 		"\u00b1\u0001\u0000\u0000\u0000\u051a\u051b\u0007\u0011\u0000\u0000\u051b"+
30023 		"\u00b3\u0001\u0000\u0000\u0000\u051c\u051d\u0007\u0012\u0000\u0000\u051d"+
30024 		"\u00b5\u0001\u0000\u0000\u0000\u051e\u0522\u0003\u00aaU\u0000\u051f\u0522"+
30025 		"\u0003\u0098L\u0000\u0520\u0522\u0003\u00b8\\\u0000\u0521\u051e\u0001"+
30026 		"\u0000\u0000\u0000\u0521\u051f\u0001\u0000\u0000\u0000\u0521\u0520\u0001"+
30027 		"\u0000\u0000\u0000\u0522\u00b7\u0001\u0000\u0000\u0000\u0523\u0524\u0005"+
30028 		"\u0356\u0000\u0000\u0524\u00b9\u0001\u0000\u0000\u0000\u0525\u0528\u0003"+
30029 		"\u00bc^\u0000\u0526\u0528\u0003\u00be_\u0000\u0527\u0525\u0001\u0000\u0000"+
30030 		"\u0000\u0527\u0526\u0001\u0000\u0000\u0000\u0528\u00bb\u0001\u0000\u0000"+
30031 		"\u0000\u0529\u052a\u0005)\u0000\u0000\u052a\u052d\u0003\u00b6[\u0000\u052b"+
30032 		"\u052d\u0003\u00b6[\u0000\u052c\u0529\u0001\u0000\u0000\u0000\u052c\u052b"+
30033 		"\u0001\u0000\u0000\u0000\u052d\u00bd\u0001\u0000\u0000\u0000\u052e\u052f"+
30034 		"\u0005)\u0000\u0000\u052f\u0532\u0005)\u0000\u0000\u0530\u0531\u0007\u0013"+
30035 		"\u0000\u0000\u0531\u0533\u0005\u0013\u0000\u0000\u0532\u0530\u0001\u0000"+
30036 		"\u0000\u0000\u0532\u0533\u0001\u0000\u0000\u0000\u0533\u0534\u0001\u0000"+
30037 		"\u0000\u0000\u0534\u0535\u0003\u00c0`\u0000\u0535\u00bf\u0001\u0000\u0000"+
30038 		"\u0000\u0536\u053c\u0003\u00b6[\u0000\u0537\u0538\u0003\u00b6[\u0000\u0538"+
30039 		"\u0539\u0005\u0013\u0000\u0000\u0539\u053a\u0003\u00aaU\u0000\u053a\u053c"+
30040 		"\u0001\u0000\u0000\u0000\u053b\u0536\u0001\u0000\u0000\u0000\u053b\u0537"+
30041 		"\u0001\u0000\u0000\u0000\u053c\u00c1\u0001\u0000\u0000\u0000\u053d\u053e"+
30042 		"\u0005)\u0000\u0000\u053e\u0542\u0005)\u0000\u0000\u053f\u0540\u0003\u00c4"+
30043 		"b\u0000\u0540\u0541\u0005\u0013\u0000\u0000\u0541\u0543\u0001\u0000\u0000"+
30044 		"\u0000\u0542\u053f\u0001\u0000\u0000\u0000\u0542\u0543\u0001\u0000\u0000"+
30045 		"\u0000\u0543\u0544\u0001\u0000\u0000\u0000\u0544\u0545\u0003\u00c6c\u0000"+
30046 		"\u0545\u00c3\u0001\u0000\u0000\u0000\u0546\u0547\u0007\u0012\u0000\u0000"+
30047 		"\u0547\u00c5\u0001\u0000\u0000\u0000\u0548\u0551\u0003\u00aaU\u0000\u0549"+
30048 		"\u054a\u0005\u00c3\u0000\u0000\u054a\u054b\u0005\u0013\u0000\u0000\u054b"+
30049 		"\u0551\u0003\u00aaU\u0000\u054c\u054d\u0003\u00aaU\u0000\u054d\u054e\u0005"+
30050 		"\u0013\u0000\u0000\u054e\u054f\u0003\u00aaU\u0000\u054f\u0551\u0001\u0000"+
30051 		"\u0000\u0000\u0550\u0548\u0001\u0000\u0000\u0000\u0550\u0549\u0001\u0000"+
30052 		"\u0000\u0000\u0550\u054c\u0001\u0000\u0000\u0000\u0551\u00c7\u0001\u0000"+
30053 		"\u0000\u0000\u0552\u055a\u0003\u0134\u009a\u0000\u0553\u055a\u0005\u00c3"+
30054 		"\u0000\u0000\u0554\u055a\u0005R\u0000\u0000\u0555\u055a\u0005\u01e6\u0000"+
30055 		"\u0000\u0556\u055a\u0005j\u0000\u0000\u0557\u055a\u0005\u0263\u0000\u0000"+
30056 		"\u0558\u055a\u0005\u02b6\u0000\u0000\u0559\u0552\u0001\u0000\u0000\u0000"+
30057 		"\u0559\u0553\u0001\u0000\u0000\u0000\u0559\u0554\u0001\u0000\u0000\u0000"+
30058 		"\u0559\u0555\u0001\u0000\u0000\u0000\u0559\u0556\u0001\u0000\u0000\u0000"+
30059 		"\u0559\u0557\u0001\u0000\u0000\u0000\u0559\u0558\u0001\u0000\u0000\u0000"+
30060 		"\u055a\u00c9\u0001\u0000\u0000\u0000\u055b\u055e\u0003\u00d0h\u0000\u055c"+
30061 		"\u055d\u0005$\u0000\u0000\u055d\u055f\u0003\u00ccf\u0000\u055e\u055c\u0001"+
30062 		"\u0000\u0000\u0000\u055e\u055f\u0001\u0000\u0000\u0000\u055f\u0566\u0001"+
30063 		"\u0000\u0000\u0000\u0560\u0563\u0003\u00ccf\u0000\u0561\u0562\u0005$\u0000"+
30064 		"\u0000\u0562\u0564\u0003\u00d0h\u0000\u0563\u0561\u0001\u0000\u0000\u0000"+
30065 		"\u0563\u0564\u0001\u0000\u0000\u0000\u0564\u0566\u0001\u0000\u0000\u0000"+
30066 		"\u0565\u055b\u0001\u0000\u0000\u0000\u0565\u0560\u0001\u0000\u0000\u0000"+
30067 		"\u0566\u00cb\u0001\u0000\u0000\u0000\u0567\u0568\u0005\u015a\u0000\u0000"+
30068 		"\u0568\u0569\u0005\u0170\u0000\u0000\u0569\u056a\u0003\u00ceg\u0000\u056a"+
30069 		"\u00cd\u0001\u0000\u0000\u0000\u056b\u056c\u0005\u023d\u0000\u0000\u056c"+
30070 		"\u0573\u0005\u0224\u0000\u0000\u056d\u056e\u0005\u0224\u0000\u0000\u056e"+
30071 		"\u0573\u0005\u0096\u0000\u0000\u056f\u0570\u0005\u0224\u0000\u0000\u0570"+
30072 		"\u0573\u0005\u02f1\u0000\u0000\u0571\u0573\u0005\u027a\u0000\u0000\u0572"+
30073 		"\u056b\u0001\u0000\u0000\u0000\u0572\u056d\u0001\u0000\u0000\u0000\u0572"+
30074 		"\u056f\u0001\u0000\u0000\u0000\u0572\u0571\u0001\u0000\u0000\u0000\u0573"+
30075 		"\u00cf\u0001\u0000\u0000\u0000\u0574\u0575\u0005\u0224\u0000\u0000\u0575"+
30076 		"\u0576\u0007\u0014\u0000\u0000\u0576\u00d1\u0001\u0000\u0000\u0000\u0577"+
30077 		"\u0578\u0003\u00aaU\u0000\u0578\u00d3\u0001\u0000\u0000\u0000\u0579\u057e"+
30078 		"\u0003\u00d2i\u0000\u057a\u057b\u0005$\u0000\u0000\u057b\u057d\u0003\u00d2"+
30079 		"i\u0000\u057c\u057a\u0001\u0000\u0000\u0000\u057d\u0580\u0001\u0000\u0000"+
30080 		"\u0000\u057e\u057c\u0001\u0000\u0000\u0000\u057e\u057f\u0001\u0000\u0000"+
30081 		"\u0000\u057f\u00d5\u0001\u0000\u0000\u0000\u0580\u057e\u0001\u0000\u0000"+
30082 		"\u0000\u0581\u0585\u0003\u00b6[\u0000\u0582\u0585\u0005j\u0000\u0000\u0583"+
30083 		"\u0585\u0005\u00c3\u0000\u0000\u0584\u0581\u0001\u0000\u0000\u0000\u0584"+
30084 		"\u0582\u0001\u0000\u0000\u0000\u0584\u0583\u0001\u0000\u0000\u0000\u0585"+
30085 		"\u00d7\u0001\u0000\u0000\u0000\u0586\u058b\u0003\u00dam\u0000\u0587\u0588"+
30086 		"\u0005$\u0000\u0000\u0588\u058a\u0003\u00dam\u0000\u0589\u0587\u0001\u0000"+
30087 		"\u0000\u0000\u058a\u058d\u0001\u0000\u0000\u0000\u058b\u0589\u0001\u0000"+
30088 		"\u0000\u0000\u058b\u058c\u0001\u0000\u0000\u0000\u058c\u00d9\u0001\u0000"+
30089 		"\u0000\u0000\u058d\u058b\u0001\u0000\u0000\u0000\u058e\u058f\u0005\u001e"+
30090 		"\u0000\u0000\u058f\u0590\u0003\u00d2i\u0000\u0590\u0591\u0005$\u0000\u0000"+
30091 		"\u0591\u0592\u0003\u00d2i\u0000\u0592\u0593\u0005\u001f\u0000\u0000\u0593"+
30092 		"\u00db\u0001\u0000\u0000\u0000\u0594\u0595\u0003\u00fa}\u0000\u0595\u0596"+
30093 		"\u0005\u0013\u0000\u0000\u0596\u0598\u0001\u0000\u0000\u0000\u0597\u0594"+
30094 		"\u0001\u0000\u0000\u0000\u0597\u0598\u0001\u0000\u0000\u0000\u0598\u0599"+
30095 		"\u0001\u0000\u0000\u0000\u0599\u059a\u0003\u00fe\u007f\u0000\u059a\u00dd"+
30096 		"\u0001\u0000\u0000\u0000\u059b\u059c\u0003\u00aaU\u0000\u059c\u00df\u0001"+
30097 		"\u0000\u0000\u0000\u059d\u059e\u0003\u00aaU\u0000\u059e\u00e1\u0001\u0000"+
30098 		"\u0000\u0000\u059f\u05a0\u0003\u00aaU\u0000\u05a0\u00e3\u0001\u0000\u0000"+
30099 		"\u0000\u05a1\u05a2\u0003\u00deo\u0000\u05a2\u00e5\u0001\u0000\u0000\u0000"+
30100 		"\u05a3\u05a4\u0003\u00deo\u0000\u05a4\u00e7\u0001\u0000\u0000\u0000\u05a5"+
30101 		"\u05ae\u0003\u00b6[\u0000\u05a6\u05a7\u0005\u0012\u0000\u0000\u05a7\u05aa"+
30102 		"\t\u0000\u0000\u0000\u05a8\u05aa\b\u0015\u0000\u0000\u05a9\u05a6\u0001"+
30103 		"\u0000\u0000\u0000\u05a9\u05a8\u0001\u0000\u0000\u0000\u05aa\u05ab\u0001"+
30104 		"\u0000\u0000\u0000\u05ab\u05a9\u0001\u0000\u0000\u0000\u05ab\u05ac\u0001"+
30105 		"\u0000\u0000\u0000\u05ac\u05ae\u0001\u0000\u0000\u0000\u05ad\u05a5\u0001"+
30106 		"\u0000\u0000\u0000\u05ad\u05a9\u0001\u0000\u0000\u0000\u05ae\u00e9\u0001"+
30107 		"\u0000\u0000\u0000\u05af\u05b2\u0003\u00b6[\u0000\u05b0\u05b1\u0005)\u0000"+
30108 		"\u0000\u05b1\u05b3\u0003\u00b6[\u0000\u05b2\u05b0\u0001\u0000\u0000\u0000"+
30109 		"\u05b2\u05b3\u0001\u0000\u0000\u0000\u05b3\u00eb\u0001\u0000\u0000\u0000"+
30110 		"\u05b4\u05bb\u0003\u00eau\u0000\u05b5\u05b8\u0005\u00b1\u0000\u0000\u05b6"+
30111 		"\u05b7\u0005\u001e\u0000\u0000\u05b7\u05b9\u0005\u001f\u0000\u0000\u05b8"+
30112 		"\u05b6\u0001\u0000\u0000\u0000\u05b8\u05b9\u0001\u0000\u0000\u0000\u05b9"+
30113 		"\u05bb\u0001\u0000\u0000\u0000\u05ba\u05b4\u0001\u0000\u0000\u0000\u05ba"+
30114 		"\u05b5\u0001\u0000\u0000\u0000\u05bb\u00ed\u0001\u0000\u0000\u0000\u05bc"+
30115 		"\u05bd\u0003\u00fa}\u0000\u05bd\u05be\u0005\u0013\u0000\u0000\u05be\u05c0"+
30116 		"\u0001\u0000\u0000\u0000\u05bf\u05bc\u0001\u0000\u0000\u0000\u05bf\u05c0"+
30117 		"\u0001\u0000\u0000\u0000\u05c0\u05c1\u0001\u0000\u0000\u0000\u05c1\u05c2"+
30118 		"\u0003\u00aaU\u0000\u05c2\u00ef\u0001\u0000\u0000\u0000\u05c3\u05c4\u0003"+
30119 		"\u00b6[\u0000\u05c4\u00f1\u0001\u0000\u0000\u0000\u05c5\u05c6\u0003\u00b6"+
30120 		"[\u0000\u05c6\u00f3\u0001\u0000\u0000\u0000\u05c7\u05c8\u0003\u00fa}\u0000"+
30121 		"\u05c8\u05c9\u0005\u0013\u0000\u0000\u05c9\u05cb\u0001\u0000\u0000\u0000"+
30122 		"\u05ca\u05c7\u0001\u0000\u0000\u0000\u05ca\u05cb\u0001\u0000\u0000\u0000"+
30123 		"\u05cb\u05cc\u0001\u0000\u0000\u0000\u05cc\u05cd\u0003\u00aaU\u0000\u05cd"+
30124 		"\u00f5\u0001\u0000\u0000\u0000\u05ce\u05cf\u0003\u00fa}\u0000\u05cf\u05d0"+
30125 		"\u0005\u0013\u0000\u0000\u05d0\u05d2\u0001\u0000\u0000\u0000\u05d1\u05ce"+
30126 		"\u0001\u0000\u0000\u0000\u05d1\u05d2\u0001\u0000\u0000\u0000\u05d2\u05d3"+
30127 		"\u0001\u0000\u0000\u0000\u05d3\u05d4\u0003\u00aaU\u0000\u05d4\u00f7\u0001"+
30128 		"\u0000\u0000\u0000\u05d5\u05d6\u0003\u00fa}\u0000\u05d6\u05d7\u0005\u0013"+
30129 		"\u0000\u0000\u05d7\u05d9\u0001\u0000\u0000\u0000\u05d8\u05d5\u0001\u0000"+
30130 		"\u0000\u0000\u05d8\u05d9\u0001\u0000\u0000\u0000\u05d9\u05da\u0001\u0000"+
30131 		"\u0000\u0000\u05da\u05db\u0003\u00aaU\u0000\u05db\u00f9\u0001\u0000\u0000"+
30132 		"\u0000\u05dc\u05dd\u0003\u00aaU\u0000\u05dd\u00fb\u0001\u0000\u0000\u0000"+
30133 		"\u05de\u05df\u0003\u00b6[\u0000\u05df\u00fd\u0001\u0000\u0000\u0000\u05e0"+
30134 		"\u05e1\u0003\u00aaU\u0000\u05e1\u00ff\u0001\u0000\u0000\u0000\u05e2\u05e7"+
30135 		"\u0003\u00dcn\u0000\u05e3\u05e4\u0005$\u0000\u0000\u05e4\u05e6\u0003\u00dc"+
30136 		"n\u0000\u05e5\u05e3\u0001\u0000\u0000\u0000\u05e6\u05e9\u0001\u0000\u0000"+
30137 		"\u0000\u05e7\u05e5\u0001\u0000\u0000\u0000\u05e7\u05e8\u0001\u0000\u0000"+
30138 		"\u0000\u05e8\u0101\u0001\u0000\u0000\u0000\u05e9\u05e7\u0001\u0000\u0000"+
30139 		"\u0000\u05ea\u05ef\u0003\u00f8|\u0000\u05eb\u05ec\u0005$\u0000\u0000\u05ec"+
30140 		"\u05ee\u0003\u00f8|\u0000\u05ed\u05eb\u0001\u0000\u0000\u0000\u05ee\u05f1"+
30141 		"\u0001\u0000\u0000\u0000\u05ef\u05ed\u0001\u0000\u0000\u0000\u05ef\u05f0"+
30142 		"\u0001\u0000\u0000\u0000\u05f0\u0103\u0001\u0000\u0000\u0000\u05f1\u05ef"+
30143 		"\u0001\u0000\u0000\u0000\u05f2\u05f7\u0003\u00deo\u0000\u05f3\u05f4\u0005"+
30144 		"$\u0000\u0000\u05f4\u05f6\u0003\u00deo\u0000\u05f5\u05f3\u0001\u0000\u0000"+
30145 		"\u0000\u05f6\u05f9\u0001\u0000\u0000\u0000\u05f7\u05f5\u0001\u0000\u0000"+
30146 		"\u0000\u05f7\u05f8\u0001\u0000\u0000\u0000\u05f8\u0105\u0001\u0000\u0000"+
30147 		"\u0000\u05f9\u05f7\u0001\u0000\u0000\u0000\u05fa\u05fb\u0003\u00aaU\u0000"+
30148 		"\u05fb\u0107\u0001\u0000\u0000\u0000\u05fc\u05fd\u0003\u00aaU\u0000\u05fd"+
30149 		"\u0109\u0001\u0000\u0000\u0000\u05fe\u05ff\u0003\u009aM\u0000\u05ff\u010b"+
30150 		"\u0001\u0000\u0000\u0000\u0600\u0601\u0003\u0098L\u0000\u0601\u010d\u0001"+
30151 		"\u0000\u0000\u0000\u0602\u0603\u0003\u00b6[\u0000\u0603\u010f\u0001\u0000"+
30152 		"\u0000\u0000\u0604\u0605\u0003\u0098L\u0000\u0605\u0111\u0001\u0000\u0000"+
30153 		"\u0000\u0606\u0607\u0005\u034f\u0000\u0000\u0607\u0113\u0001\u0000\u0000"+
30154 		"\u0000\u0608\u0609\u0003\u00ecv\u0000\u0609\u060a\u0005)\u0000\u0000\u060a"+
30155 		"\u060b\u0003\u0110\u0088\u0000\u060b\u060c\u0005\r\u0000\u0000\u060c\u060d"+
30156 		"\u0003\u0112\u0089\u0000\u060d\u0115\u0001\u0000\u0000\u0000\u060e\u060f"+
30157 		"\u0003\u0098L\u0000\u060f\u0117\u0001\u0000\u0000\u0000\u0610\u0613\u0003"+
30158 		"\u00aaU\u0000\u0611\u0612\u0005\u0013\u0000\u0000\u0612\u0614\u0003\u00aa"+
30159 		"U\u0000\u0613\u0611\u0001\u0000\u0000\u0000\u0613\u0614\u0001\u0000\u0000"+
30160 		"\u0000\u0614\u0119\u0001\u0000\u0000\u0000\u0615\u0616\u0003\u009aM\u0000"+
30161 		"\u0616\u011b\u0001\u0000\u0000\u0000\u0617\u061a\u0003\u011e\u008f\u0000"+
30162 		"\u0618\u0619\u0005)\u0000\u0000\u0619\u061b\u0003\u00b6[\u0000\u061a\u0618"+
30163 		"\u0001\u0000\u0000\u0000\u061a\u061b\u0001\u0000\u0000\u0000\u061b\u011d"+
30164 		"\u0001\u0000\u0000\u0000\u061c\u061f\u0003\u00aaU\u0000\u061d\u061f\u0003"+
30165 		"\u0098L\u0000\u061e\u061c\u0001\u0000\u0000\u0000\u061e\u061d\u0001\u0000"+
30166 		"\u0000\u0000\u061f\u011f\u0001\u0000\u0000\u0000\u0620\u0621\u0003\u00b6"+
30167 		"[\u0000\u0621\u0121\u0001\u0000\u0000\u0000\u0622\u0625\u0003\u00aaU\u0000"+
30168 		"\u0623\u0624\u0005\u0013\u0000\u0000\u0624\u0626\u0003\u00aaU\u0000\u0625"+
30169 		"\u0623\u0001\u0000\u0000\u0000\u0625\u0626\u0001\u0000\u0000\u0000\u0626"+
30170 		"\u0123\u0001\u0000\u0000\u0000\u0627\u0628\u0007\u0016\u0000\u0000\u0628"+
30171 		"\u0125\u0001\u0000\u0000\u0000\u0629\u062a\u0007\u0017\u0000\u0000\u062a"+
30172 		"\u0127\u0001\u0000\u0000\u0000\u062b\u062e\u0003\u00ecv\u0000\u062c\u062e"+
30173 		"\u0003\u011c\u008e\u0000\u062d\u062b\u0001\u0000\u0000\u0000\u062d\u062c"+
30174 		"\u0001\u0000\u0000\u0000\u062e\u0129\u0001\u0000\u0000\u0000\u062f\u0630"+
30175 		"\u0003\u00aaU\u0000\u0630\u012b\u0001\u0000\u0000\u0000\u0631\u0636\u0003"+
30176 		"\u00aaU\u0000\u0632\u0633\u0005$\u0000\u0000\u0633\u0635\u0003\u00aaU"+
30177 		"\u0000\u0634\u0632\u0001\u0000\u0000\u0000\u0635\u0638\u0001\u0000\u0000"+
30178 		"\u0000\u0636\u0634\u0001\u0000\u0000\u0000\u0636\u0637\u0001\u0000\u0000"+
30179 		"\u0000\u0637\u012d\u0001\u0000\u0000\u0000\u0638\u0636\u0001\u0000\u0000"+
30180 		"\u0000\u0639\u063c\u0005R\u0000\u0000\u063a\u063c\u0003\u012c\u0096\u0000"+
30181 		"\u063b\u0639\u0001\u0000\u0000\u0000\u063b\u063a\u0001\u0000\u0000\u0000"+
30182 		"\u063c\u012f\u0001\u0000\u0000\u0000\u063d\u063e\u0007\u0018\u0000\u0000"+
30183 		"\u063e\u0131\u0001\u0000\u0000\u0000\u063f\u0640\u0007\u0019\u0000\u0000"+
30184 		"\u0640\u0641\u0003\u0122\u0091\u0000\u0641\u0133\u0001\u0000\u0000\u0000"+
30185 		"\u0642\u0643\u0006\u009a\uffff\uffff\u0000\u0643\u0648\u0003\u013c\u009e"+
30186 		"\u0000\u0644\u0645\u0003\u013a\u009d\u0000\u0645\u0646\u0003\u0134\u009a"+
30187 		"\u0001\u0646\u0648\u0001\u0000\u0000\u0000\u0647\u0642\u0001\u0000\u0000"+
30188 		"\u0000\u0647\u0644\u0001\u0000\u0000\u0000\u0648\u0656\u0001\u0000\u0000"+
30189 		"\u0000\u0649\u064a\n\u0004\u0000\u0000\u064a\u064b\u0003\u0136\u009b\u0000"+
30190 		"\u064b\u064c\u0003\u0134\u009a\u0005\u064c\u0655\u0001\u0000\u0000\u0000"+
30191 		"\u064d\u064e\n\u0003\u0000\u0000\u064e\u064f\u0003\u0138\u009c\u0000\u064f"+
30192 		"\u0650\u0003\u0134\u009a\u0004\u0650\u0655\u0001\u0000\u0000\u0000\u0651"+
30193 		"\u0652\n\u0002\u0000\u0000\u0652\u0653\u0005\u0328\u0000\u0000\u0653\u0655"+
30194 		"\u0003\u0134\u009a\u0003\u0654\u0649\u0001\u0000\u0000\u0000\u0654\u064d"+
30195 		"\u0001\u0000\u0000\u0000\u0654\u0651\u0001\u0000\u0000\u0000\u0655\u0658"+
30196 		"\u0001\u0000\u0000\u0000\u0656\u0654\u0001\u0000\u0000\u0000\u0656\u0657"+
30197 		"\u0001\u0000\u0000\u0000\u0657\u0135\u0001\u0000\u0000\u0000\u0658\u0656"+
30198 		"\u0001\u0000\u0000\u0000\u0659\u065a\u0007\u001a\u0000\u0000\u065a\u0137"+
30199 		"\u0001\u0000\u0000\u0000\u065b\u065c\u0007\u001b\u0000\u0000\u065c\u0139"+
30200 		"\u0001\u0000\u0000\u0000\u065d\u065e\u0007\u001c\u0000\u0000\u065e\u013b"+
30201 		"\u0001\u0000\u0000\u0000\u065f\u0660\u0006\u009e\uffff\uffff\u0000\u0660"+
30202 		"\u0661\u0003\u0142\u00a1\u0000\u0661\u0681\u0001\u0000\u0000\u0000\u0662"+
30203 		"\u0663\n\u0007\u0000\u0000\u0663\u0665\u0005\u0159\u0000\u0000\u0664\u0666"+
30204 		"\u0005\u01d6\u0000\u0000\u0665\u0664\u0001\u0000\u0000\u0000\u0665\u0666"+
30205 		"\u0001\u0000\u0000\u0000\u0666\u0667\u0001\u0000\u0000\u0000\u0667\u0680"+
30206 		"\u0007\u001d\u0000\u0000\u0668\u0669\n\u0006\u0000\u0000\u0669\u066a\u0005"+
30207 		"\u0015\u0000\u0000\u066a\u0680\u0003\u0142\u00a1\u0000\u066b\u066c\n\u0005"+
30208 		"\u0000\u0000\u066c\u066d\u0005\u01af\u0000\u0000\u066d\u066e\u0005\u01e1"+
30209 		"\u0000\u0000\u066e\u066f\u0005\u001e\u0000\u0000\u066f\u0670\u0003\u0134"+
30210 		"\u009a\u0000\u0670\u0671\u0005\u001f\u0000\u0000\u0671\u0680\u0001\u0000"+
30211 		"\u0000\u0000\u0672\u0673\n\u0004\u0000\u0000\u0673\u0674\u0003\u0140\u00a0"+
30212 		"\u0000\u0674\u0675\u0003\u0142\u00a1\u0000\u0675\u0680\u0001\u0000\u0000"+
30213 		"\u0000\u0676\u0677\n\u0003\u0000\u0000\u0677\u0678\u0003\u0140\u00a0\u0000"+
30214 		"\u0678\u0679\u0007\u001e\u0000\u0000\u0679\u067a\u0003|>\u0000\u067a\u0680"+
30215 		"\u0001\u0000\u0000\u0000\u067b\u067c\n\u0002\u0000\u0000\u067c\u067d\u0003"+
30216 		"\u013e\u009f\u0000\u067d\u067e\u0003\u0142\u00a1\u0000\u067e\u0680\u0001"+
30217 		"\u0000\u0000\u0000\u067f\u0662\u0001\u0000\u0000\u0000\u067f\u0668\u0001"+
30218 		"\u0000\u0000\u0000\u067f\u066b\u0001\u0000\u0000\u0000\u067f\u0672\u0001"+
30219 		"\u0000\u0000\u0000\u067f\u0676\u0001\u0000\u0000\u0000\u067f\u067b\u0001"+
30220 		"\u0000\u0000\u0000\u0680\u0683\u0001\u0000\u0000\u0000\u0681\u067f\u0001"+
30221 		"\u0000\u0000\u0000\u0681\u0682\u0001\u0000\u0000\u0000\u0682\u013d\u0001"+
30222 		"\u0000\u0000\u0000\u0683\u0681\u0001\u0000\u0000\u0000\u0684\u0685\u0007"+
30223 		"\u001f\u0000\u0000\u0685\u013f\u0001\u0000\u0000\u0000\u0686\u0687\u0007"+
30224 		" \u0000\u0000\u0687\u0141\u0001\u0000\u0000\u0000\u0688\u068a\u0003\u0144"+
30225 		"\u00a2\u0000\u0689\u068b\u0005\u01d6\u0000\u0000\u068a\u0689\u0001\u0000"+
30226 		"\u0000\u0000\u068a\u068b\u0001\u0000\u0000\u0000\u068b\u068c\u0001\u0000"+
30227 		"\u0000\u0000\u068c\u068d\u0005\u013d\u0000\u0000\u068d\u068e\u0003|>\u0000"+
30228 		"\u068e\u06c0\u0001\u0000\u0000\u0000\u068f\u0691\u0003\u0144\u00a2\u0000"+
30229 		"\u0690\u0692\u0005\u01d6\u0000\u0000\u0691\u0690\u0001\u0000\u0000\u0000"+
30230 		"\u0691\u0692\u0001\u0000\u0000\u0000\u0692\u0693\u0001\u0000\u0000\u0000"+
30231 		"\u0693\u0694\u0005\u013d\u0000\u0000\u0694\u0695\u0005\u001e\u0000\u0000"+
30232 		"\u0695\u069a\u0003\u0134\u009a\u0000\u0696\u0697\u0005$\u0000\u0000\u0697"+
30233 		"\u0699\u0003\u0134\u009a\u0000\u0698\u0696\u0001\u0000\u0000\u0000\u0699"+
30234 		"\u069c\u0001\u0000\u0000\u0000\u069a\u0698\u0001\u0000\u0000\u0000\u069a"+
30235 		"\u069b\u0001\u0000\u0000\u0000\u069b\u069d\u0001\u0000\u0000\u0000\u069c"+
30236 		"\u069a\u0001\u0000\u0000\u0000\u069d\u069e\u0005\u001f\u0000\u0000\u069e"+
30237 		"\u06c0\u0001\u0000\u0000\u0000\u069f\u06a1\u0003\u0144\u00a2\u0000\u06a0"+
30238 		"\u06a2\u0005\u01d6\u0000\u0000\u06a1\u06a0\u0001\u0000\u0000\u0000\u06a1"+
30239 		"\u06a2\u0001\u0000\u0000\u0000\u06a2\u06a3\u0001\u0000\u0000\u0000\u06a3"+
30240 		"\u06a4\u0005h\u0000\u0000\u06a4\u06a5\u0003\u0144\u00a2\u0000\u06a5\u06a6"+
30241 		"\u0005V\u0000\u0000\u06a6\u06a7\u0003\u0142\u00a1\u0000\u06a7\u06c0\u0001"+
30242 		"\u0000\u0000\u0000\u06a8\u06a9\u0003\u0144\u00a2\u0000\u06a9\u06aa\u0005"+
30243 		"\u028d\u0000\u0000\u06aa\u06ab\u0005\u0171\u0000\u0000\u06ab\u06ac\u0003"+
30244 		"\u0144\u00a2\u0000\u06ac\u06c0\u0001\u0000\u0000\u0000\u06ad\u06af\u0003"+
30245 		"\u0144\u00a2\u0000\u06ae\u06b0\u0005\u01d6\u0000\u0000\u06af\u06ae\u0001"+
30246 		"\u0000\u0000\u0000\u06af\u06b0\u0001\u0000\u0000\u0000\u06b0\u06b1\u0001"+
30247 		"\u0000\u0000\u0000\u06b1\u06b2\u0005\u0171\u0000\u0000\u06b2\u06b5\u0003"+
30248 		"\u0146\u00a3\u0000\u06b3\u06b4\u0005\u00ee\u0000\u0000\u06b4\u06b6\u0003"+
30249 		"\u0146\u00a3\u0000\u06b5\u06b3\u0001\u0000\u0000\u0000\u06b5\u06b6\u0001"+
30250 		"\u0000\u0000\u0000\u06b6\u06c0\u0001\u0000\u0000\u0000\u06b7\u06b9\u0003"+
30251 		"\u0144\u00a2\u0000\u06b8\u06ba\u0005\u01d6\u0000\u0000\u06b9\u06b8\u0001"+
30252 		"\u0000\u0000\u0000\u06b9\u06ba\u0001\u0000\u0000\u0000\u06ba\u06bb\u0001"+
30253 		"\u0000\u0000\u0000\u06bb\u06bc\u0007!\u0000\u0000\u06bc\u06bd\u0003\u0144"+
30254 		"\u00a2\u0000\u06bd\u06c0\u0001\u0000\u0000\u0000\u06be\u06c0\u0003\u0144"+
30255 		"\u00a2\u0000\u06bf\u0688\u0001\u0000\u0000\u0000\u06bf\u068f\u0001\u0000"+
30256 		"\u0000\u0000\u06bf\u069f\u0001\u0000\u0000\u0000\u06bf\u06a8\u0001\u0000"+
30257 		"\u0000\u0000\u06bf\u06ad\u0001\u0000\u0000\u0000\u06bf\u06b7\u0001\u0000"+
30258 		"\u0000\u0000\u06bf\u06be\u0001\u0000\u0000\u0000\u06c0\u0143\u0001\u0000"+
30259 		"\u0000\u0000\u06c1\u06c2\u0006\u00a2\uffff\uffff\u0000\u06c2\u06c3\u0003"+
30260 		"\u0146\u00a3\u0000\u06c3\u06f0\u0001\u0000\u0000\u0000\u06c4\u06c5\n\u000f"+
30261 		"\u0000\u0000\u06c5\u06c6\u0005\u0007\u0000\u0000\u06c6\u06ef\u0003\u0144"+
30262 		"\u00a2\u0010\u06c7\u06c8\n\u000e\u0000\u0000\u06c8\u06c9\u0005\b\u0000"+
30263 		"\u0000\u06c9\u06ef\u0003\u0144\u00a2\u000f\u06ca\u06cb\n\r\u0000\u0000"+
30264 		"\u06cb\u06cc\u0005\t\u0000\u0000\u06cc\u06ef\u0003\u0144\u00a2\u000e\u06cd"+
30265 		"\u06ce\n\f\u0000\u0000\u06ce\u06cf\u0005\n\u0000\u0000\u06cf\u06ef\u0003"+
30266 		"\u0144\u00a2\r\u06d0\u06d1\n\u000b\u0000\u0000\u06d1\u06d2\u0005\u000e"+
30267 		"\u0000\u0000\u06d2\u06ef\u0003\u0144\u00a2\f\u06d3\u06d4\n\n\u0000\u0000"+
30268 		"\u06d4\u06d5\u0005\u000f\u0000\u0000\u06d5\u06ef\u0003\u0144\u00a2\u000b"+
30269 		"\u06d6\u06d7\n\t\u0000\u0000\u06d7\u06d8\u0005\u0010\u0000\u0000\u06d8"+
30270 		"\u06ef\u0003\u0144\u00a2\n\u06d9\u06da\n\b\u0000\u0000\u06da\u06db\u0005"+
30271 		"\u0011\u0000\u0000\u06db\u06ef\u0003\u0144\u00a2\t\u06dc\u06dd\n\u0007"+
30272 		"\u0000\u0000\u06dd\u06de\u0005\u00d6\u0000\u0000\u06de\u06ef\u0003\u0144"+
30273 		"\u00a2\b\u06df\u06e0\n\u0006\u0000\u0000\u06e0\u06e1\u0005\u01ba\u0000"+
30274 		"\u0000\u06e1\u06ef\u0003\u0144\u00a2\u0007\u06e2\u06e3\n\u0005\u0000\u0000"+
30275 		"\u06e3\u06e4\u0005\f\u0000\u0000\u06e4\u06ef\u0003\u0144\u00a2\u0006\u06e5"+
30276 		"\u06e6\n\u0004\u0000\u0000\u06e6\u06e7\u0005\u000b\u0000\u0000\u06e7\u06ef"+
30277 		"\u0003\u0144\u00a2\u0005\u06e8\u06e9\n\u0003\u0000\u0000\u06e9\u06ea\u0005"+
30278 		"\u000e\u0000\u0000\u06ea\u06ef\u0003\u01aa\u00d5\u0000\u06eb\u06ec\n\u0002"+
30279 		"\u0000\u0000\u06ec\u06ed\u0005\u000f\u0000\u0000\u06ed\u06ef\u0003\u01aa"+
30280 		"\u00d5\u0000\u06ee\u06c4\u0001\u0000\u0000\u0000\u06ee\u06c7\u0001\u0000"+
30281 		"\u0000\u0000\u06ee\u06ca\u0001\u0000\u0000\u0000\u06ee\u06cd\u0001\u0000"+
30282 		"\u0000\u0000\u06ee\u06d0\u0001\u0000\u0000\u0000\u06ee\u06d3\u0001\u0000"+
30283 		"\u0000\u0000\u06ee\u06d6\u0001\u0000\u0000\u0000\u06ee\u06d9\u0001\u0000"+
30284 		"\u0000\u0000\u06ee\u06dc\u0001\u0000\u0000\u0000\u06ee\u06df\u0001\u0000"+
30285 		"\u0000\u0000\u06ee\u06e2\u0001\u0000\u0000\u0000\u06ee\u06e5\u0001\u0000"+
30286 		"\u0000\u0000\u06ee\u06e8\u0001\u0000\u0000\u0000\u06ee\u06eb\u0001\u0000"+
30287 		"\u0000\u0000\u06ef\u06f2\u0001\u0000\u0000\u0000\u06f0\u06ee\u0001\u0000"+
30288 		"\u0000\u0000\u06f0\u06f1\u0001\u0000\u0000\u0000\u06f1\u0145\u0001\u0000"+
30289 		"\u0000\u0000\u06f2\u06f0\u0001\u0000\u0000\u0000\u06f3\u06f4\u0006\u00a3"+
30290 		"\uffff\uffff\u0000\u06f4\u0728\u0003\u0150\u00a8\u0000\u06f5\u0728\u0003"+
30291 		"\u0092I\u0000\u06f6\u0728\u0003\u0096K\u0000\u06f7\u0728\u0003\u014c\u00a6"+
30292 		"\u0000\u06f8\u0728\u0003\u00ba]\u0000\u06f9\u06ff\u0005\u000e\u0000\u0000"+
30293 		"\u06fa\u06ff\u0005\u000f\u0000\u0000\u06fb\u06ff\u0005\u0006\u0000\u0000"+
30294 		"\u06fc\u06ff\u0003\u013a\u009d\u0000\u06fd\u06ff\u0005j\u0000\u0000\u06fe"+
30295 		"\u06f9\u0001\u0000\u0000\u0000\u06fe\u06fa\u0001\u0000\u0000\u0000\u06fe"+
30296 		"\u06fb\u0001\u0000\u0000\u0000\u06fe\u06fc\u0001\u0000\u0000\u0000\u06fe"+
30297 		"\u06fd\u0001\u0000\u0000\u0000\u06ff\u0700\u0001\u0000\u0000\u0000\u0700"+
30298 		"\u0728\u0003\u0146\u00a3\t\u0701\u0703\u0005\u0263\u0000\u0000\u0702\u0701"+
30299 		"\u0001\u0000\u0000\u0000\u0702\u0703\u0001\u0000\u0000\u0000\u0703\u0704"+
30300 		"\u0001\u0000\u0000\u0000\u0704\u0705\u0005\u001e\u0000\u0000\u0705\u070a"+
30301 		"\u0003\u0134\u009a\u0000\u0706\u0707\u0005$\u0000\u0000\u0707\u0709\u0003"+
30302 		"\u0134\u009a\u0000\u0708\u0706\u0001\u0000\u0000\u0000\u0709\u070c\u0001"+
30303 		"\u0000\u0000\u0000\u070a\u0708\u0001\u0000\u0000\u0000\u070a\u070b\u0001"+
30304 		"\u0000\u0000\u0000\u070b\u070d\u0001\u0000\u0000\u0000\u070c\u070a\u0001"+
30305 		"\u0000\u0000\u0000\u070d\u070e\u0005\u001f\u0000\u0000\u070e\u0728\u0001"+
30306 		"\u0000\u0000\u0000\u070f\u0711\u0005\u00f7\u0000\u0000\u0710\u070f\u0001"+
30307 		"\u0000\u0000\u0000\u0710\u0711\u0001\u0000\u0000\u0000\u0711\u0712\u0001"+
30308 		"\u0000\u0000\u0000\u0712\u0728\u0003|>\u0000\u0713\u0714\u0005 \u0000"+
30309 		"\u0000\u0714\u0715\u0003\u00aaU\u0000\u0715\u0716\u0003\u0134\u009a\u0000"+
30310 		"\u0716\u0717\u0005!\u0000\u0000\u0717\u0728\u0001\u0000\u0000\u0000\u0718"+
30311 		"\u0719\u0003\u00aaU\u0000\u0719\u071a\u0007\"\u0000\u0000\u071a\u071b"+
30312 		"\u0003\u0098L\u0000\u071b\u0728\u0001\u0000\u0000\u0000\u071c\u071f\u0003"+
30313 		"\u0148\u00a4\u0000\u071d\u071e\u0005\u0257\u0000\u0000\u071e\u0720\u0003"+
30314 		"\u01b4\u00da\u0000\u071f\u071d\u0001\u0000\u0000\u0000\u071f\u0720\u0001"+
30315 		"\u0000\u0000\u0000\u0720\u0722\u0001\u0000\u0000\u0000\u0721\u0723\u0003"+
30316 		"\u014a\u00a5\u0000\u0722\u0721\u0001\u0000\u0000\u0000\u0722\u0723\u0001"+
30317 		"\u0000\u0000\u0000\u0723\u0728\u0001\u0000\u0000\u0000\u0724\u0728\u0003"+
30318 		"\u019c\u00ce\u0000\u0725\u0728\u0003\u01a0\u00d0\u0000\u0726\u0728\u0003"+
30319 		"\u01aa\u00d5\u0000\u0727\u06f3\u0001\u0000\u0000\u0000\u0727\u06f5\u0001"+
30320 		"\u0000\u0000\u0000\u0727\u06f6\u0001\u0000\u0000\u0000\u0727\u06f7\u0001"+
30321 		"\u0000\u0000\u0000\u0727\u06f8\u0001\u0000\u0000\u0000\u0727\u06fe\u0001"+
30322 		"\u0000\u0000\u0000\u0727\u0702\u0001\u0000\u0000\u0000\u0727\u0710\u0001"+
30323 		"\u0000\u0000\u0000\u0727\u0713\u0001\u0000\u0000\u0000\u0727\u0718\u0001"+
30324 		"\u0000\u0000\u0000\u0727\u071c\u0001\u0000\u0000\u0000\u0727\u0724\u0001"+
30325 		"\u0000\u0000\u0000\u0727\u0725\u0001\u0000\u0000\u0000\u0727\u0726\u0001"+
30326 		"\u0000\u0000\u0000\u0728\u0730\u0001\u0000\u0000\u0000\u0729\u072a\n\n"+
30327 		"\u0000\u0000\u072a\u072b\u0005\u0004\u0000\u0000\u072b\u072f\u0003\u0146"+
30328 		"\u00a3\u000b\u072c\u072d\n\f\u0000\u0000\u072d\u072f\u0003\u01de\u00ef"+
30329 		"\u0000\u072e\u0729\u0001\u0000\u0000\u0000\u072e\u072c\u0001\u0000\u0000"+
30330 		"\u0000\u072f\u0732\u0001\u0000\u0000\u0000\u0730\u072e\u0001\u0000\u0000"+
30331 		"\u0000\u0730\u0731\u0001\u0000\u0000\u0000\u0731\u0147\u0001\u0000\u0000"+
30332 		"\u0000\u0732\u0730\u0001\u0000\u0000\u0000\u0733\u0734\u0003\u0098L\u0000"+
30333 		"\u0734\u0149\u0001\u0000\u0000\u0000\u0735\u073a\u0005\u01dc\u0000\u0000"+
30334 		"\u0736\u073a\u0005\u00ec\u0000\u0000\u0737\u0738\u0005\u00c3\u0000\u0000"+
30335 		"\u0738\u073a\u0003\u0096K\u0000\u0739\u0735\u0001\u0000\u0000\u0000\u0739"+
30336 		"\u0736\u0001\u0000\u0000\u0000\u0739\u0737\u0001\u0000\u0000\u0000\u073a"+
30337 		"\u073b\u0001\u0000\u0000\u0000\u073b\u073c\u0005\u01e6\u0000\u0000\u073c"+
30338 		"\u073d\u0007#\u0000\u0000\u073d\u014b\u0001\u0000\u0000\u0000\u073e\u0741"+
30339 		"\u0003\u00aaU\u0000\u073f\u0740\u0005\u0013\u0000\u0000\u0740\u0742\u0003"+
30340 		"\u00aaU\u0000\u0741\u073f\u0001\u0000\u0000\u0000\u0741\u0742\u0001\u0000"+
30341 		"\u0000\u0000\u0742\u0745\u0001\u0000\u0000\u0000\u0743\u0744\u0005\u0013"+
30342 		"\u0000\u0000\u0744\u0746\u0003\u00aaU\u0000\u0745\u0743\u0001\u0000\u0000"+
30343 		"\u0000\u0745\u0746\u0001\u0000\u0000\u0000\u0746\u014d\u0001\u0000\u0000"+
30344 		"\u0000\u0747\u074c\u0003\u014c\u00a6\u0000\u0748\u0749\u0005$\u0000\u0000"+
30345 		"\u0749\u074b\u0003\u014c\u00a6\u0000\u074a\u0748\u0001\u0000\u0000\u0000"+
30346 		"\u074b\u074e\u0001\u0000\u0000\u0000\u074c\u074a\u0001\u0000\u0000\u0000"+
30347 		"\u074c\u074d\u0001\u0000\u0000\u0000\u074d\u014f\u0001\u0000\u0000\u0000"+
30348 		"\u074e\u074c\u0001\u0000\u0000\u0000\u074f\u0755\u0003\u0154\u00aa\u0000"+
30349 		"\u0750\u0755\u0003\u016a\u00b5\u0000\u0751\u0755\u0003\u0194\u00ca\u0000"+
30350 		"\u0752\u0755\u0003\u0156\u00ab\u0000\u0753\u0755\u0003\u0152\u00a9\u0000"+
30351 		"\u0754\u074f\u0001\u0000\u0000\u0000\u0754\u0750\u0001\u0000\u0000\u0000"+
30352 		"\u0754\u0751\u0001\u0000\u0000\u0000\u0754\u0752\u0001\u0000\u0000\u0000"+
30353 		"\u0754\u0753\u0001\u0000\u0000\u0000\u0755\u0151\u0001\u0000\u0000\u0000"+
30354 		"\u0756\u0757\u0003\u00f4z\u0000\u0757\u0763\u0005\u001e\u0000\u0000\u0758"+
30355 		"\u075a\u0003\u0134\u009a\u0000\u0759\u0758\u0001\u0000\u0000\u0000\u0759"+
30356 		"\u075a\u0001\u0000\u0000\u0000\u075a\u0764\u0001\u0000\u0000\u0000\u075b"+
30357 		"\u0760\u0003\u0134\u009a\u0000\u075c\u075d\u0005$\u0000\u0000\u075d\u075f"+
30358 		"\u0003\u0134\u009a\u0000\u075e\u075c\u0001\u0000\u0000\u0000\u075f\u0762"+
30359 		"\u0001\u0000\u0000\u0000\u0760\u075e\u0001\u0000\u0000\u0000\u0760\u0761"+
30360 		"\u0001\u0000\u0000\u0000\u0761\u0764\u0001\u0000\u0000\u0000\u0762\u0760"+
30361 		"\u0001\u0000\u0000\u0000\u0763\u0759\u0001\u0000\u0000\u0000\u0763\u075b"+
30362 		"\u0001\u0000\u0000\u0000\u0764\u0765\u0001\u0000\u0000\u0000\u0765\u0766"+
30363 		"\u0005\u001f\u0000\u0000\u0766\u0153\u0001\u0000\u0000\u0000\u0767\u0768"+
30364 		"\u0003\u015a\u00ad\u0000\u0768\u076a\u0005\u001e\u0000\u0000\u0769\u076b"+
30365 		"\u0003\u015c\u00ae\u0000\u076a\u0769\u0001\u0000\u0000\u0000\u076a\u076b"+
30366 		"\u0001\u0000\u0000\u0000\u076b\u0775\u0001\u0000\u0000\u0000\u076c\u0771"+
30367 		"\u0003\u0134\u009a\u0000\u076d\u076e\u0005$\u0000\u0000\u076e\u0770\u0003"+
30368 		"\u0134\u009a\u0000\u076f\u076d\u0001\u0000\u0000\u0000\u0770\u0773\u0001"+
30369 		"\u0000\u0000\u0000\u0771\u076f\u0001\u0000\u0000\u0000\u0771\u0772\u0001"+
30370 		"\u0000\u0000\u0000\u0772\u0776\u0001\u0000\u0000\u0000\u0773\u0771\u0001"+
30371 		"\u0000\u0000\u0000\u0774\u0776\u0005\u0010\u0000\u0000\u0775\u076c\u0001"+
30372 		"\u0000\u0000\u0000\u0775\u0774\u0001\u0000\u0000\u0000\u0775\u0776\u0001"+
30373 		"\u0000\u0000\u0000\u0776\u0778\u0001\u0000\u0000\u0000\u0777\u0779\u0003"+
30374 		"\u01de\u00ef\u0000\u0778\u0777\u0001\u0000\u0000\u0000\u0778\u0779\u0001"+
30375 		"\u0000\u0000\u0000\u0779\u077a\u0001\u0000\u0000\u0000\u077a\u077c\u0005"+
30376 		"\u001f\u0000\u0000\u077b\u077d\u0003\u015e\u00af\u0000\u077c\u077b\u0001"+
30377 		"\u0000\u0000\u0000\u077c\u077d\u0001\u0000\u0000\u0000\u077d\u0155\u0001"+
30378 		"\u0000\u0000\u0000\u077e\u077f\u0003\u014c\u00a6\u0000\u077f\u0780\u0007"+
30379 		"\"\u0000\u0000\u0780\u0781\u0003\u0148\u00a4\u0000\u0781\u0794\u0001\u0000"+
30380 		"\u0000\u0000\u0782\u0783\u0003\u0158\u00ac\u0000\u0783\u078f\u0005\u001e"+
30381 		"\u0000\u0000\u0784\u0786\u0003\u0134\u009a\u0000\u0785\u0784\u0001\u0000"+
30382 		"\u0000\u0000\u0785\u0786\u0001\u0000\u0000\u0000\u0786\u0790\u0001\u0000"+
30383 		"\u0000\u0000\u0787\u078c\u0003\u0134\u009a\u0000\u0788\u0789\u0005$\u0000"+
30384 		"\u0000\u0789\u078b\u0003\u0134\u009a\u0000\u078a\u0788\u0001\u0000\u0000"+
30385 		"\u0000\u078b\u078e\u0001\u0000\u0000\u0000\u078c\u078a\u0001\u0000\u0000"+
30386 		"\u0000\u078c\u078d\u0001\u0000\u0000\u0000\u078d\u0790\u0001\u0000\u0000"+
30387 		"\u0000\u078e\u078c\u0001\u0000\u0000\u0000\u078f\u0785\u0001\u0000\u0000"+
30388 		"\u0000\u078f\u0787\u0001\u0000\u0000\u0000\u0790\u0791\u0001\u0000\u0000"+
30389 		"\u0000\u0791\u0792\u0005\u001f\u0000\u0000\u0792\u0794\u0001\u0000\u0000"+
30390 		"\u0000\u0793\u077e\u0001\u0000\u0000\u0000\u0793\u0782\u0001\u0000\u0000"+
30391 		"\u0000\u0794\u0157\u0001\u0000\u0000\u0000\u0795\u07b6\u0005\u032c\u0000"+
30392 		"\u0000\u0796\u07b6\u0005\u032d\u0000\u0000\u0797\u07b6\u0005\u032e\u0000"+
30393 		"\u0000\u0798\u07b6\u0005\u032f\u0000\u0000\u0799\u07b6\u0005\u0330\u0000"+
30394 		"\u0000\u079a\u07b6\u0005\u0331\u0000\u0000\u079b\u07b6\u0005\u0332\u0000"+
30395 		"\u0000\u079c\u07b6\u0005\u0333\u0000\u0000\u079d\u07b6\u0005\u0334\u0000"+
30396 		"\u0000\u079e\u07b6\u0005\u0335\u0000\u0000\u079f\u07b6\u0005\u0336\u0000"+
30397 		"\u0000\u07a0\u07b6\u0005\u0337\u0000\u0000\u07a1\u07b6\u0005\u0338\u0000"+
30398 		"\u0000\u07a2\u07b6\u0005\u0339\u0000\u0000\u07a3\u07b6\u0005\u033a\u0000"+
30399 		"\u0000\u07a4\u07b6\u0005\u033b\u0000\u0000\u07a5\u07b6\u0005\u033c\u0000"+
30400 		"\u0000\u07a6\u07b6\u0005\u033d\u0000\u0000\u07a7\u07b6\u0005\u033e\u0000"+
30401 		"\u0000\u07a8\u07b6\u0005\u033f\u0000\u0000\u07a9\u07b6\u0005\u0340\u0000"+
30402 		"\u0000\u07aa\u07b6\u0005\u0341\u0000\u0000\u07ab\u07b6\u0005\u0342\u0000"+
30403 		"\u0000\u07ac\u07b6\u0005\u0343\u0000\u0000\u07ad\u07b6\u0005\u0344\u0000"+
30404 		"\u0000\u07ae\u07b6\u0005\u015f\u0000\u0000\u07af\u07b6\u0005\u0345\u0000"+
30405 		"\u0000\u07b0\u07b6\u0005\u0346\u0000\u0000\u07b1\u07b6\u0005\u0347\u0000"+
30406 		"\u0000\u07b2\u07b6\u0005\u0160\u0000\u0000\u07b3\u07b4\u0005\u01af\u0000"+
30407 		"\u0000\u07b4\u07b6\u0005\u01e1\u0000\u0000\u07b5\u0795\u0001\u0000\u0000"+
30408 		"\u0000\u07b5\u0796\u0001\u0000\u0000\u0000\u07b5\u0797\u0001\u0000\u0000"+
30409 		"\u0000\u07b5\u0798\u0001\u0000\u0000\u0000\u07b5\u0799\u0001\u0000\u0000"+
30410 		"\u0000\u07b5\u079a\u0001\u0000\u0000\u0000\u07b5\u079b\u0001\u0000\u0000"+
30411 		"\u0000\u07b5\u079c\u0001\u0000\u0000\u0000\u07b5\u079d\u0001\u0000\u0000"+
30412 		"\u0000\u07b5\u079e\u0001\u0000\u0000\u0000\u07b5\u079f\u0001\u0000\u0000"+
30413 		"\u0000\u07b5\u07a0\u0001\u0000\u0000\u0000\u07b5\u07a1\u0001\u0000\u0000"+
30414 		"\u0000\u07b5\u07a2\u0001\u0000\u0000\u0000\u07b5\u07a3\u0001\u0000\u0000"+
30415 		"\u0000\u07b5\u07a4\u0001\u0000\u0000\u0000\u07b5\u07a5\u0001\u0000\u0000"+
30416 		"\u0000\u07b5\u07a6\u0001\u0000\u0000\u0000\u07b5\u07a7\u0001\u0000\u0000"+
30417 		"\u0000\u07b5\u07a8\u0001\u0000\u0000\u0000\u07b5\u07a9\u0001\u0000\u0000"+
30418 		"\u0000\u07b5\u07aa\u0001\u0000\u0000\u0000\u07b5\u07ab\u0001\u0000\u0000"+
30419 		"\u0000\u07b5\u07ac\u0001\u0000\u0000\u0000\u07b5\u07ad\u0001\u0000\u0000"+
30420 		"\u0000\u07b5\u07ae\u0001\u0000\u0000\u0000\u07b5\u07af\u0001\u0000\u0000"+
30421 		"\u0000\u07b5\u07b0\u0001\u0000\u0000\u0000\u07b5\u07b1\u0001\u0000\u0000"+
30422 		"\u0000\u07b5\u07b2\u0001\u0000\u0000\u0000\u07b5\u07b3\u0001\u0000\u0000"+
30423 		"\u0000\u07b6\u0159\u0001\u0000\u0000\u0000\u07b7\u07b8\u0007$\u0000\u0000"+
30424 		"\u07b8\u015b\u0001\u0000\u0000\u0000\u07b9\u07ba\u0005\u00d4\u0000\u0000"+
30425 		"\u07ba\u015d\u0001\u0000\u0000\u0000\u07bb\u07be\u0005\u01f8\u0000\u0000"+
30426 		"\u07bc\u07bf\u0003\u0160\u00b0\u0000\u07bd\u07bf\u0003\u00aaU\u0000\u07be"+
30427 		"\u07bc\u0001\u0000\u0000\u0000\u07be\u07bd\u0001\u0000\u0000\u0000\u07bf"+
30428 		"\u015f\u0001\u0000\u0000\u0000\u07c0\u07c2\u0005\u001e\u0000\u0000\u07c1"+
30429 		"\u07c3\u0003\u00aaU\u0000\u07c2\u07c1\u0001\u0000\u0000\u0000\u07c2\u07c3"+
30430 		"\u0001\u0000\u0000\u0000\u07c3\u07ce\u0001\u0000\u0000\u0000\u07c4\u07c5"+
30431 		"\u0005\u01fe\u0000\u0000\u07c5\u07c6\u0005t\u0000\u0000\u07c6\u07cb\u0003"+
30432 		"\u0134\u009a\u0000\u07c7\u07c8\u0005$\u0000\u0000\u07c8\u07ca\u0003\u0134"+
30433 		"\u009a\u0000\u07c9\u07c7\u0001\u0000\u0000\u0000\u07ca\u07cd\u0001\u0000"+
30434 		"\u0000\u0000\u07cb\u07c9\u0001\u0000\u0000\u0000\u07cb\u07cc\u0001\u0000"+
30435 		"\u0000\u0000\u07cc\u07cf\u0001\u0000\u0000\u0000\u07cd\u07cb\u0001\u0000"+
30436 		"\u0000\u0000\u07ce\u07c4\u0001\u0000\u0000\u0000\u07ce\u07cf\u0001\u0000"+
30437 		"\u0000\u0000\u07cf\u07d1\u0001\u0000\u0000\u0000\u07d0\u07d2\u0003\u01b0"+
30438 		"\u00d8\u0000\u07d1\u07d0\u0001\u0000\u0000\u0000\u07d1\u07d2\u0001\u0000"+
30439 		"\u0000\u0000\u07d2\u07d4\u0001\u0000\u0000\u0000\u07d3\u07d5\u0003\u0162"+
30440 		"\u00b1\u0000\u07d4\u07d3\u0001\u0000\u0000\u0000\u07d4\u07d5\u0001\u0000"+
30441 		"\u0000\u0000\u07d5\u07d6\u0001\u0000\u0000\u0000\u07d6\u07d7\u0005\u001f"+
30442 		"\u0000\u0000\u07d7\u0161\u0001\u0000\u0000\u0000\u07d8\u07db\u0007%\u0000"+
30443 		"\u0000\u07d9\u07dc\u0003\u0164\u00b2\u0000\u07da\u07dc\u0003\u0168\u00b4"+
30444 		"\u0000\u07db\u07d9\u0001\u0000\u0000\u0000\u07db\u07da\u0001\u0000\u0000"+
30445 		"\u0000\u07dc\u0163\u0001\u0000\u0000\u0000\u07dd\u07de\u0005\u00ad\u0000"+
30446 		"\u0000\u07de\u07ea\u0005\u0263\u0000\u0000\u07df\u07e0\u0005\u02f0\u0000"+
30447 		"\u0000\u07e0\u07ea\u0005\u020f\u0000\u0000\u07e1\u07e2\u0005\u02f0\u0000"+
30448 		"\u0000\u07e2\u07ea\u0005\u010e\u0000\u0000\u07e3\u07e4\u0003\u0134\u009a"+
30449 		"\u0000\u07e4\u07e5\u0005\u020f\u0000\u0000\u07e5\u07ea\u0001\u0000\u0000"+
30450 		"\u0000\u07e6\u07e7\u0003\u0134\u009a\u0000\u07e7\u07e8\u0005\u010e\u0000"+
30451 		"\u0000\u07e8\u07ea\u0001\u0000\u0000\u0000\u07e9\u07dd\u0001\u0000\u0000"+
30452 		"\u0000\u07e9\u07df\u0001\u0000\u0000\u0000\u07e9\u07e1\u0001\u0000\u0000"+
30453 		"\u0000\u07e9\u07e3\u0001\u0000\u0000\u0000\u07e9\u07e6\u0001\u0000\u0000"+
30454 		"\u0000\u07ea\u0165\u0001\u0000\u0000\u0000\u07eb\u07ec\u0003\u0164\u00b2"+
30455 		"\u0000\u07ec\u0167\u0001\u0000\u0000\u0000\u07ed\u07ee\u0005h\u0000\u0000"+
30456 		"\u07ee\u07ef\u0003\u0164\u00b2\u0000\u07ef\u07f0\u0005V\u0000\u0000\u07f0"+
30457 		"\u07f1\u0003\u0166\u00b3\u0000\u07f1\u0169\u0001\u0000\u0000\u0000\u07f2"+
30458 		"\u07ff\u0003\u016e\u00b7\u0000\u07f3\u07ff\u0003\u0170\u00b8\u0000\u07f4"+
30459 		"\u07ff\u0003\u017c\u00be\u0000\u07f5\u07ff\u0003\u017e\u00bf\u0000\u07f6"+
30460 		"\u07ff\u0003\u0182\u00c1\u0000\u07f7\u07ff\u0003\u0184\u00c2\u0000\u07f8"+
30461 		"\u07ff\u0003\u0186\u00c3\u0000\u07f9\u07ff\u0003\u0188\u00c4\u0000\u07fa"+
30462 		"\u07ff\u0003\u018a\u00c5\u0000\u07fb\u07ff\u0003\u018e\u00c7\u0000\u07fc"+
30463 		"\u07ff\u0003\u018c\u00c6\u0000\u07fd\u07ff\u0003\u016c\u00b6\u0000\u07fe"+
30464 		"\u07f2\u0001\u0000\u0000\u0000\u07fe\u07f3\u0001\u0000\u0000\u0000\u07fe"+
30465 		"\u07f4\u0001\u0000\u0000\u0000\u07fe\u07f5\u0001\u0000\u0000\u0000\u07fe"+
30466 		"\u07f6\u0001\u0000\u0000\u0000\u07fe\u07f7\u0001\u0000\u0000\u0000\u07fe"+
30467 		"\u07f8\u0001\u0000\u0000\u0000\u07fe\u07f9\u0001\u0000\u0000\u0000\u07fe"+
30468 		"\u07fa\u0001\u0000\u0000\u0000\u07fe\u07fb\u0001\u0000\u0000\u0000\u07fe"+
30469 		"\u07fc\u0001\u0000\u0000\u0000\u07fe\u07fd\u0001\u0000\u0000\u0000\u07ff"+
30470 		"\u016b\u0001\u0000\u0000\u0000\u0800\u0803\u0005\u00b1\u0000\u0000\u0801"+
30471 		"\u0802\u0005\u001e\u0000\u0000\u0802\u0804\u0005\u001f\u0000\u0000\u0803"+
30472 		"\u0801\u0001\u0000\u0000\u0000\u0803\u0804\u0001\u0000\u0000\u0000\u0804"+
30473 		"\u016d\u0001\u0000\u0000\u0000\u0805\u0806\u00053\u0000\u0000\u0806\u0808"+
30474 		"\u0005\u001e\u0000\u0000\u0807\u0809\u0003\u015c\u00ae\u0000\u0808\u0807"+
30475 		"\u0001\u0000\u0000\u0000\u0808\u0809\u0001\u0000\u0000\u0000\u0809\u0813"+
30476 		"\u0001\u0000\u0000\u0000\u080a\u080f\u0003\u0134\u009a\u0000\u080b\u080c"+
30477 		"\u0005$\u0000\u0000\u080c\u080e\u0003\u0134\u009a\u0000\u080d\u080b\u0001"+
30478 		"\u0000\u0000\u0000\u080e\u0811\u0001\u0000\u0000\u0000\u080f\u080d\u0001"+
30479 		"\u0000\u0000\u0000\u080f\u0810\u0001\u0000\u0000\u0000\u0810\u0814\u0001"+
30480 		"\u0000\u0000\u0000\u0811\u080f\u0001\u0000\u0000\u0000\u0812\u0814\u0005"+
30481 		"\u0010\u0000\u0000\u0813\u080a\u0001\u0000\u0000\u0000\u0813\u0812\u0001"+
30482 		"\u0000\u0000\u0000\u0813\u0814\u0001\u0000\u0000\u0000\u0814\u0816\u0001"+
30483 		"\u0000\u0000\u0000\u0815\u0817\u0003\u01b0\u00d8\u0000\u0816\u0815\u0001"+
30484 		"\u0000\u0000\u0000\u0816\u0817\u0001\u0000\u0000\u0000\u0817\u081a\u0001"+
30485 		"\u0000\u0000\u0000\u0818\u0819\u0005\u0278\u0000\u0000\u0819\u081b\u0003"+
30486 		"\u0134\u009a\u0000\u081a\u0818\u0001\u0000\u0000\u0000\u081a\u081b\u0001"+
30487 		"\u0000\u0000\u0000\u081b\u081c\u0001\u0000\u0000\u0000\u081c\u081d\u0005"+
30488 		"\u001f\u0000\u0000\u081d\u016f\u0001\u0000\u0000\u0000\u081e\u081f\u0007"+
30489 		"&\u0000\u0000\u081f\u0820\u0005\u001e\u0000\u0000\u0820\u0821\u0005\u001f"+
30490 		"\u0000\u0000\u0821\u084b\u0003\u0172\u00b9\u0000\u0822\u0823\u0005\u01db"+
30491 		"\u0000\u0000\u0823\u0824\u0003\u0146\u00a3\u0000\u0824\u0825\u0003\u0172"+
30492 		"\u00b9\u0000\u0825\u084b\u0001\u0000\u0000\u0000\u0826\u0827\u0007\'\u0000"+
30493 		"\u0000\u0827\u0828\u0005\u001e\u0000\u0000\u0828\u082a\u0003\u0134\u009a"+
30494 		"\u0000\u0829\u082b\u0003\u0174\u00ba\u0000\u082a\u0829\u0001\u0000\u0000"+
30495 		"\u0000\u082a\u082b\u0001\u0000\u0000\u0000\u082b\u082c\u0001\u0000\u0000"+
30496 		"\u0000\u082c\u082e\u0005\u001f\u0000\u0000\u082d\u082f\u0003\u0176\u00bb"+
30497 		"\u0000\u082e\u082d\u0001\u0000\u0000\u0000\u082e\u082f\u0001\u0000\u0000"+
30498 		"\u0000\u082f\u0830\u0001\u0000\u0000\u0000\u0830\u0831\u0003\u0172\u00b9"+
30499 		"\u0000\u0831\u084b\u0001\u0000\u0000\u0000\u0832\u0833\u0007(\u0000\u0000"+
30500 		"\u0833\u0834\u0005\u001e\u0000\u0000\u0834\u0835\u0003\u0134\u009a\u0000"+
30501 		"\u0835\u0837\u0005\u001f\u0000\u0000\u0836\u0838\u0003\u0176\u00bb\u0000"+
30502 		"\u0837\u0836\u0001\u0000\u0000\u0000\u0837\u0838\u0001\u0000\u0000\u0000"+
30503 		"\u0838\u0839\u0001\u0000\u0000\u0000\u0839\u083a\u0003\u0172\u00b9\u0000"+
30504 		"\u083a\u084b\u0001\u0000\u0000\u0000\u083b\u083c\u0005\u01da\u0000\u0000"+
30505 		"\u083c\u083d\u0005\u001e\u0000\u0000\u083d\u083e\u0003\u0134\u009a\u0000"+
30506 		"\u083e\u083f\u0005$\u0000\u0000\u083f\u0840\u0003\u0146\u00a3\u0000\u0840"+
30507 		"\u0843\u0005\u001f\u0000\u0000\u0841\u0842\u0005\u0115\u0000\u0000\u0842"+
30508 		"\u0844\u0007)\u0000\u0000\u0843\u0841\u0001\u0000\u0000\u0000\u0843\u0844"+
30509 		"\u0001\u0000\u0000\u0000\u0844\u0846\u0001\u0000\u0000\u0000\u0845\u0847"+
30510 		"\u0003\u0176\u00bb\u0000\u0846\u0845\u0001\u0000\u0000\u0000\u0846\u0847"+
30511 		"\u0001\u0000\u0000\u0000\u0847\u0848\u0001\u0000\u0000\u0000\u0848\u0849"+
30512 		"\u0003\u0172\u00b9\u0000\u0849\u084b\u0001\u0000\u0000\u0000\u084a\u081e"+
30513 		"\u0001\u0000\u0000\u0000\u084a\u0822\u0001\u0000\u0000\u0000\u084a\u0826"+
30514 		"\u0001\u0000\u0000\u0000\u084a\u0832\u0001\u0000\u0000\u0000\u084a\u083b"+
30515 		"\u0001\u0000\u0000\u0000\u084b\u0171\u0001\u0000\u0000\u0000\u084c\u084f"+
30516 		"\u0005\u01f8\u0000\u0000\u084d\u0850\u0003\u00aaU\u0000\u084e\u0850\u0003"+
30517 		"\u0160\u00b0\u0000\u084f\u084d\u0001\u0000\u0000\u0000\u084f\u084e\u0001"+
30518 		"\u0000\u0000\u0000\u0850\u0173\u0001\u0000\u0000\u0000\u0851\u0852\u0005"+
30519 		"$\u0000\u0000\u0852\u0855\u0007*\u0000\u0000\u0853\u0854\u0005$\u0000"+
30520 		"\u0000\u0854\u0856\u0003\u0134\u009a\u0000\u0855\u0853\u0001\u0000\u0000"+
30521 		"\u0000\u0855\u0856\u0001\u0000\u0000\u0000\u0856\u0175\u0001\u0000\u0000"+
30522 		"\u0000\u0857\u0858\u0007+\u0000\u0000\u0858\u0859\u0005\u01dd\u0000\u0000"+
30523 		"\u0859\u0177\u0001\u0000\u0000\u0000\u085a\u085b\u0005\u0110\u0000\u0000"+
30524 		"\u085b\u0862\u0005\u0301\u0000\u0000\u085c\u0862\u0005\u0220\u0000\u0000"+
30525 		"\u085d\u0862\u0005\u0101\u0000\u0000\u085e\u0862\u0005\u01ab\u0000\u0000"+
30526 		"\u085f\u0862\u0005\u00fd\u0000\u0000\u0860\u0862\u0005~\u0000\u0000\u0861"+
30527 		"\u085a\u0001\u0000\u0000\u0000\u0861\u085c\u0001\u0000\u0000\u0000\u0861"+
30528 		"\u085d\u0001\u0000\u0000\u0000\u0861\u085e\u0001\u0000\u0000\u0000\u0861"+
30529 		"\u085f\u0001\u0000\u0000\u0000\u0861\u0860\u0001\u0000\u0000\u0000\u0862"+
30530 		"\u0179\u0001\u0000\u0000\u0000\u0863\u0864\u0007,\u0000\u0000\u0864\u017b"+
30531 		"\u0001\u0000\u0000\u0000\u0865\u0866\u00054\u0000\u0000\u0866\u0867\u0005"+
30532 		"\u001e\u0000\u0000\u0867\u0868\u0003\u0134\u009a\u0000\u0868\u0869\u0005"+
30533 		"Y\u0000\u0000\u0869\u086b\u0003\u0180\u00c0\u0000\u086a\u086c\u0005X\u0000"+
30534 		"\u0000\u086b\u086a\u0001\u0000\u0000\u0000\u086b\u086c\u0001\u0000\u0000"+
30535 		"\u0000\u086c\u086d\u0001\u0000\u0000\u0000\u086d\u086e\u0005\u001f\u0000"+
30536 		"\u0000\u086e\u087e\u0001\u0000\u0000\u0000\u086f\u0870\u00054\u0000\u0000"+
30537 		"\u0870\u0871\u0005\u001e\u0000\u0000\u0871\u0872\u0003\u0134\u009a\u0000"+
30538 		"\u0872\u0873\u0005]\u0000\u0000\u0873\u0874\u0005\u02df\u0000\u0000\u0874"+
30539 		"\u0875\u0005\u0348\u0000\u0000\u0875\u0876\u0003\u0134\u009a\u0000\u0876"+
30540 		"\u0877\u0005Y\u0000\u0000\u0877\u0879\u0005\u00b9\u0000\u0000\u0878\u087a"+
30541 		"\u0003\u01c0\u00e0\u0000\u0879\u0878\u0001\u0000\u0000\u0000\u0879\u087a"+
30542 		"\u0001\u0000\u0000\u0000\u087a\u087b\u0001\u0000\u0000\u0000\u087b\u087c"+
30543 		"\u0005\u001f\u0000\u0000\u087c\u087e\u0001\u0000\u0000\u0000\u087d\u0865"+
30544 		"\u0001\u0000\u0000\u0000\u087d\u086f\u0001\u0000\u0000\u0000\u087e\u017d"+
30545 		"\u0001\u0000\u0000\u0000\u087f\u0880\u0005\u00a7\u0000\u0000\u0880\u0881"+
30546 		"\u0005\u001e\u0000\u0000\u0881\u0882\u0003\u0134\u009a\u0000\u0882\u0883"+
30547 		"\u0005$\u0000\u0000\u0883\u0884\u0003\u0180\u00c0\u0000\u0884\u0885\u0005"+
30548 		"\u001f\u0000\u0000\u0885\u088e\u0001\u0000\u0000\u0000\u0886\u0887\u0005"+
30549 		"\u00a7\u0000\u0000\u0887\u0888\u0005\u001e\u0000\u0000\u0888\u0889\u0003"+
30550 		"\u0134\u009a\u0000\u0889\u088a\u0005\u0307\u0000\u0000\u088a\u088b\u0003"+
30551 		"\u00d6k\u0000\u088b\u088c\u0005\u001f\u0000\u0000\u088c\u088e\u0001\u0000"+
30552 		"\u0000\u0000\u088d\u087f\u0001\u0000\u0000\u0000\u088d\u0886\u0001\u0000"+
30553 		"\u0000\u0000\u088e\u017f\u0001\u0000\u0000\u0000\u088f\u0891\u0005j\u0000"+
30554 		"\u0000\u0890\u0892\u0003\u01da\u00ed\u0000\u0891\u0890\u0001\u0000\u0000"+
30555 		"\u0000\u0891\u0892\u0001\u0000\u0000\u0000\u0892\u08ba\u0001\u0000\u0000"+
30556 		"\u0000\u0893\u0895\u0005\u0080\u0000\u0000\u0894\u0896\u0003\u01da\u00ed"+
30557 		"\u0000\u0895\u0894\u0001\u0000\u0000\u0000\u0895\u0896\u0001\u0000\u0000"+
30558 		"\u0000\u0896\u0898\u0001\u0000\u0000\u0000\u0897\u0899\u0003\u01c2\u00e1"+
30559 		"\u0000\u0898\u0897\u0001\u0000\u0000\u0000\u0898\u0899\u0001\u0000\u0000"+
30560 		"\u0000\u0899\u08ba\u0001\u0000\u0000\u0000\u089a\u089d\u0005\u01ca\u0000"+
30561 		"\u0000\u089b\u089d\u0005\u01c7\u0000\u0000\u089c\u089a\u0001\u0000\u0000"+
30562 		"\u0000\u089c\u089b\u0001\u0000\u0000\u0000\u089d\u089f\u0001\u0000\u0000"+
30563 		"\u0000\u089e\u08a0\u0003\u01da\u00ed\u0000\u089f\u089e\u0001\u0000\u0000"+
30564 		"\u0000\u089f\u08a0\u0001\u0000\u0000\u0000\u08a0\u08ba\u0001\u0000\u0000"+
30565 		"\u0000\u08a1\u08ba\u0007-\u0000\u0000\u08a2\u08ba\u0007.\u0000\u0000\u08a3"+
30566 		"\u08ba\u0005\u00b8\u0000\u0000\u08a4\u08a6\u0005\u02df\u0000\u0000\u08a5"+
30567 		"\u08a7\u0003\u01c0\u00e0\u0000\u08a6\u08a5\u0001\u0000\u0000\u0000\u08a6"+
30568 		"\u08a7\u0001\u0000\u0000\u0000\u08a7\u08ba\u0001\u0000\u0000\u0000\u08a8"+
30569 		"\u08aa\u0005\u00b9\u0000\u0000\u08a9\u08ab\u0003\u01c0\u00e0\u0000\u08aa"+
30570 		"\u08a9\u0001\u0000\u0000\u0000\u08aa\u08ab\u0001\u0000\u0000\u0000\u08ab"+
30571 		"\u08ba\u0001\u0000\u0000\u0000\u08ac\u08af\u0005\u00c1\u0000\u0000\u08ad"+
30572 		"\u08b0\u0003\u01da\u00ed\u0000\u08ae\u08b0\u0003\u01be\u00df\u0000\u08af"+
30573 		"\u08ad\u0001\u0000\u0000\u0000\u08af\u08ae\u0001\u0000\u0000\u0000\u08af"+
30574 		"\u08b0\u0001\u0000\u0000\u0000\u08b0\u08ba\u0001\u0000\u0000\u0000\u08b1"+
30575 		"\u08ba\u0005\u015e\u0000\u0000\u08b2\u08ba\u0005\u0228\u0000\u0000\u08b3"+
30576 		"\u08b4\u0005\u00d8\u0000\u0000\u08b4\u08ba\u0005\u0210\u0000\u0000\u08b5"+
30577 		"\u08b7\u0005\u010a\u0000\u0000\u08b6\u08b8\u0003\u01be\u00df\u0000\u08b7"+
30578 		"\u08b6\u0001\u0000\u0000\u0000\u08b7\u08b8\u0001\u0000\u0000\u0000\u08b8"+
30579 		"\u08ba\u0001\u0000\u0000\u0000\u08b9\u088f\u0001\u0000\u0000\u0000\u08b9"+
30580 		"\u0893\u0001\u0000\u0000\u0000\u08b9\u089c\u0001\u0000\u0000\u0000\u08b9"+
30581 		"\u08a1\u0001\u0000\u0000\u0000\u08b9\u08a2\u0001\u0000\u0000\u0000\u08b9"+
30582 		"\u08a3\u0001\u0000\u0000\u0000\u08b9\u08a4\u0001\u0000\u0000\u0000\u08b9"+
30583 		"\u08a8\u0001\u0000\u0000\u0000\u08b9\u08ac\u0001\u0000\u0000\u0000\u08b9"+
30584 		"\u08b1\u0001\u0000\u0000\u0000\u08b9\u08b2\u0001\u0000\u0000\u0000\u08b9"+
30585 		"\u08b3\u0001\u0000\u0000\u0000\u08b9\u08b5\u0001\u0000\u0000\u0000\u08ba"+
30586 		"\u0181\u0001\u0000\u0000\u0000\u08bb\u08bc\u00055\u0000\u0000\u08bc\u08bd"+
30587 		"\u0005\u001e\u0000\u0000\u08bd\u08be\u0003\u0134\u009a\u0000\u08be\u08bf"+
30588 		"\u0005\u013d\u0000\u0000\u08bf\u08c0\u0003\u0134\u009a\u0000\u08c0\u08c1"+
30589 		"\u0005\u001f\u0000\u0000\u08c1\u0183\u0001\u0000\u0000\u0000\u08c2\u08c3"+
30590 		"\u0007/\u0000\u0000\u08c3\u08c4\u0005\u001e\u0000\u0000\u08c4\u08c5\u0003"+
30591 		"\u0134\u009a\u0000\u08c5\u08c6\u0005\u0115\u0000\u0000\u08c6\u08c9\u0005"+
30592 		"\u034f\u0000\u0000\u08c7\u08c8\u0005\u0110\u0000\u0000\u08c8\u08ca\u0005"+
30593 		"\u034f\u0000\u0000\u08c9\u08c7\u0001\u0000\u0000\u0000\u08c9\u08ca\u0001"+
30594 		"\u0000\u0000\u0000\u08ca\u08cb\u0001\u0000\u0000\u0000\u08cb\u08cc\u0005"+
30595 		"\u001f\u0000\u0000\u08cc\u08d9\u0001\u0000\u0000\u0000\u08cd\u08ce\u0007"+
30596 		"/\u0000\u0000\u08ce\u08cf\u0005\u001e\u0000\u0000\u08cf\u08d0\u0003\u0134"+
30597 		"\u009a\u0000\u08d0\u08d1\u0005$\u0000\u0000\u08d1\u08d4\u0005\u034f\u0000"+
30598 		"\u0000\u08d2\u08d3\u0005$\u0000\u0000\u08d3\u08d5\u0005\u034f\u0000\u0000"+
30599 		"\u08d4\u08d2\u0001\u0000\u0000\u0000\u08d4\u08d5\u0001\u0000\u0000\u0000"+
30600 		"\u08d5\u08d6\u0001\u0000\u0000\u0000\u08d6\u08d7\u0005\u001f\u0000\u0000"+
30601 		"\u08d7\u08d9\u0001\u0000\u0000\u0000\u08d8\u08c2\u0001\u0000\u0000\u0000"+
30602 		"\u08d8\u08cd\u0001\u0000\u0000\u0000\u08d9\u0185\u0001\u0000\u0000\u0000"+
30603 		"\u08da\u08db\u00058\u0000\u0000\u08db\u08dc\u0005\u001e\u0000\u0000\u08dc"+
30604 		"\u08dd\u0003\u00aaU\u0000\u08dd\u08de\u0005\u0115\u0000\u0000\u08de\u08df"+
30605 		"\u0003\u0134\u009a\u0000\u08df\u08e0\u0005\u001f\u0000\u0000\u08e0\u0187"+
30606 		"\u0001\u0000\u0000\u0000\u08e1\u08e2\u0005\u0080\u0000\u0000\u08e2\u08e3"+
30607 		"\u0005\u001e\u0000\u0000\u08e3\u08e8\u0003\u0134\u009a\u0000\u08e4\u08e5"+
30608 		"\u0005$\u0000\u0000\u08e5\u08e7\u0003\u0134\u009a\u0000\u08e6\u08e4\u0001"+
30609 		"\u0000\u0000\u0000\u08e7\u08ea\u0001\u0000\u0000\u0000\u08e8\u08e6\u0001"+
30610 		"\u0000\u0000\u0000\u08e8\u08e9\u0001\u0000\u0000\u0000\u08e9\u08ed\u0001"+
30611 		"\u0000\u0000\u0000\u08ea\u08e8\u0001\u0000\u0000\u0000\u08eb\u08ec\u0005"+
30612 		"\u0307\u0000\u0000\u08ec\u08ee\u0003\u00d6k\u0000\u08ed\u08eb\u0001\u0000"+
30613 		"\u0000\u0000\u08ed\u08ee\u0001\u0000\u0000\u0000\u08ee\u08ef\u0001\u0000"+
30614 		"\u0000\u0000\u08ef\u08f0\u0005\u001f\u0000\u0000\u08f0\u0189\u0001\u0000"+
30615 		"\u0000\u0000\u08f1\u08f2\u00059\u0000\u0000\u08f2\u08f8\u0005\u001e\u0000"+
30616 		"\u0000\u08f3\u08f5\u00070\u0000\u0000\u08f4\u08f6\u0003\u0134\u009a\u0000"+
30617 		"\u08f5\u08f4\u0001\u0000\u0000\u0000\u08f5\u08f6\u0001\u0000\u0000\u0000"+
30618 		"\u08f6\u08f7\u0001";
30619 	private static final String _serializedATNSegment1 =
30620 		"\u0000\u0000\u0000\u08f7\u08f9\u0005\u0115\u0000\u0000\u08f8\u08f3\u0001"+
30621 		"\u0000\u0000\u0000\u08f8\u08f9\u0001\u0000\u0000\u0000\u08f9\u08fa\u0001"+
30622 		"\u0000\u0000\u0000\u08fa\u08fb\u0003\u0134\u009a\u0000\u08fb\u08fc\u0005"+
30623 		"\u001f\u0000\u0000\u08fc\u0908\u0001\u0000\u0000\u0000\u08fd\u08fe\u0005"+
30624 		"9\u0000\u0000\u08fe\u0902\u0005\u001e\u0000\u0000\u08ff\u0900\u0003\u0134"+
30625 		"\u009a\u0000\u0900\u0901\u0005\u0115\u0000\u0000\u0901\u0903\u0001\u0000"+
30626 		"\u0000\u0000\u0902\u08ff\u0001\u0000\u0000\u0000\u0902\u0903\u0001\u0000"+
30627 		"\u0000\u0000\u0903\u0904\u0001\u0000\u0000\u0000\u0904\u0905\u0003\u0134"+
30628 		"\u009a\u0000\u0905\u0906\u0005\u001f\u0000\u0000\u0906\u0908\u0001\u0000"+
30629 		"\u0000\u0000\u0907\u08f1\u0001\u0000\u0000\u0000\u0907\u08fd\u0001\u0000"+
30630 		"\u0000\u0000\u0908\u018b\u0001\u0000\u0000\u0000\u0909\u090a\u0005\u030d"+
30631 		"\u0000\u0000\u090a\u090b\u0005\u001e\u0000\u0000\u090b\u090c\u0003\u014e"+
30632 		"\u00a7\u0000\u090c\u090d\u0005\u001f\u0000\u0000\u090d\u018d\u0001\u0000"+
30633 		"\u0000\u0000\u090e\u090f\u0005\u031a\u0000\u0000\u090f\u0910\u0005\u001e"+
30634 		"\u0000\u0000\u0910\u0913\u0003\u0134\u009a\u0000\u0911\u0912\u0005Y\u0000"+
30635 		"\u0000\u0912\u0914\u0003\u01b4\u00da\u0000\u0913\u0911\u0001\u0000\u0000"+
30636 		"\u0000\u0913\u0914\u0001\u0000\u0000\u0000\u0914\u0916\u0001\u0000\u0000"+
30637 		"\u0000\u0915\u0917\u0003\u0190\u00c8\u0000\u0916\u0915\u0001\u0000\u0000"+
30638 		"\u0000\u0916\u0917\u0001\u0000\u0000\u0000\u0917\u0918\u0001\u0000\u0000"+
30639 		"\u0000\u0918\u0919\u0005\u001f\u0000\u0000\u0919\u018f\u0001\u0000\u0000"+
30640 		"\u0000\u091a\u0926\u0005\u0170\u0000\u0000\u091b\u0920\u0003\u0192\u00c9"+
30641 		"\u0000\u091c\u091d\u0005$\u0000\u0000\u091d\u091f\u0003\u0192\u00c9\u0000"+
30642 		"\u091e\u091c\u0001\u0000\u0000\u0000\u091f\u0922\u0001\u0000\u0000\u0000"+
30643 		"\u0920\u091e\u0001\u0000\u0000\u0000\u0920\u0921\u0001\u0000\u0000\u0000"+
30644 		"\u0921\u0927\u0001\u0000\u0000\u0000\u0922\u0920\u0001\u0000\u0000\u0000"+
30645 		"\u0923\u0924\u0005\u034f\u0000\u0000\u0924\u0925\u0005\u000f\u0000\u0000"+
30646 		"\u0925\u0927\u0005\u034f\u0000\u0000\u0926\u091b\u0001\u0000\u0000\u0000"+
30647 		"\u0926\u0923\u0001\u0000\u0000\u0000\u0927\u0191\u0001\u0000\u0000\u0000"+
30648 		"\u0928\u092a\u0005\u034f\u0000\u0000\u0929\u092b\u0003\u01d6\u00eb\u0000"+
30649 		"\u092a\u0929\u0001\u0000\u0000\u0000\u092a\u092b\u0001\u0000\u0000\u0000"+
30650 		"\u092b\u092d\u0001\u0000\u0000\u0000\u092c\u092e\u0005\u025a\u0000\u0000"+
30651 		"\u092d\u092c\u0001\u0000\u0000\u0000\u092d\u092e\u0001\u0000\u0000\u0000"+
30652 		"\u092e\u0193\u0001\u0000\u0000\u0000\u092f\u0932\u0003\u0198\u00cc\u0000"+
30653 		"\u0930\u0932\u0003\u0196\u00cb\u0000\u0931\u092f\u0001\u0000\u0000\u0000"+
30654 		"\u0931\u0930\u0001\u0000\u0000\u0000\u0932\u0195\u0001\u0000\u0000\u0000"+
30655 		"\u0933\u0941\u0005\u00ae\u0000\u0000\u0934\u093a\u0005\u00af\u0000\u0000"+
30656 		"\u0935\u0937\u0005\u001e\u0000\u0000\u0936\u0938\u0005\u034f\u0000\u0000"+
30657 		"\u0937\u0936\u0001\u0000\u0000\u0000\u0937\u0938\u0001\u0000\u0000\u0000"+
30658 		"\u0938\u0939\u0001\u0000\u0000\u0000\u0939\u093b\u0005\u001f\u0000\u0000"+
30659 		"\u093a\u0935\u0001\u0000\u0000\u0000\u093a\u093b\u0001\u0000\u0000\u0000"+
30660 		"\u093b\u0941\u0001\u0000\u0000\u0000\u093c\u0941\u0005\u00b0\u0000\u0000"+
30661 		"\u093d\u0941\u0005:\u0000\u0000\u093e\u0941\u0005\u0179\u0000\u0000\u093f"+
30662 		"\u0941\u0005\u017a\u0000\u0000\u0940\u0933\u0001\u0000\u0000\u0000\u0940"+
30663 		"\u0934\u0001\u0000\u0000\u0000\u0940\u093c\u0001\u0000\u0000\u0000\u0940"+
30664 		"\u093d\u0001\u0000\u0000\u0000\u0940\u093e\u0001\u0000\u0000\u0000\u0940"+
30665 		"\u093f\u0001\u0000\u0000\u0000\u0941\u0197\u0001\u0000\u0000\u0000\u0942"+
30666 		"\u0943\u0003\u019a\u00cd\u0000\u0943\u094d\u0005\u001e\u0000\u0000\u0944"+
30667 		"\u0949\u0003\u0134\u009a\u0000\u0945\u0946\u0005$\u0000\u0000\u0946\u0948"+
30668 		"\u0003\u0134\u009a\u0000\u0947\u0945\u0001\u0000\u0000\u0000\u0948\u094b"+
30669 		"\u0001\u0000\u0000\u0000\u0949\u0947\u0001\u0000\u0000\u0000\u0949\u094a"+
30670 		"\u0001\u0000\u0000\u0000\u094a\u094e\u0001\u0000\u0000\u0000\u094b\u0949"+
30671 		"\u0001\u0000\u0000\u0000\u094c\u094e\u0005\u0010\u0000\u0000\u094d\u0944"+
30672 		"\u0001\u0000\u0000\u0000\u094d\u094c\u0001\u0000\u0000\u0000\u094d\u094e"+
30673 		"\u0001\u0000\u0000\u0000\u094e\u094f\u0001\u0000\u0000\u0000\u094f\u0950"+
30674 		"\u0005\u001f\u0000\u0000\u0950\u0199\u0001\u0000\u0000\u0000\u0951\u0971"+
30675 		"\u0005\u0139\u0000\u0000\u0952\u0971\u0005\u0179\u0000\u0000\u0953\u0971"+
30676 		"\u0005\u017a\u0000\u0000\u0954\u0971\u0005\u023e\u0000\u0000\u0955\u0971"+
30677 		"\u0005\u0146\u0000\u0000\u0956\u0971\u0005\u0151\u0000\u0000\u0957\u0971"+
30678 		"\u0005\u01ba\u0000\u0000\u0958\u0971\u0005\u00b5\u0000\u0000\u0959\u0971"+
30679 		"\u0005\u026b\u0000\u0000\u095a\u0971\u0005\u016e\u0000\u0000\u095b\u0971"+
30680 		"\u0005\u025c\u0000\u0000\u095c\u0971\u0005\u00b8\u0000\u0000\u095d\u0971"+
30681 		"\u0005\u00ba\u0000\u0000\u095e\u0971\u0005\u011d\u0000\u0000\u095f\u0971"+
30682 		"\u0005\u023c\u0000\u0000\u0960\u0971\u0005\u0175\u0000\u0000\u0961\u0971"+
30683 		"\u0005\u01bf\u0000\u0000\u0962\u0971\u0005\u01c0\u0000\u0000\u0963\u0971"+
30684 		"\u0005\u01c1\u0000\u0000\u0964\u0971\u0005\u020b\u0000\u0000\u0965\u0971"+
30685 		"\u0005\u020c\u0000\u0000\u0966\u0971\u0005\u02df\u0000\u0000\u0967\u0971"+
30686 		"\u0005\u02e0\u0000\u0000\u0968\u0971\u0005\u02e1\u0000\u0000\u0969\u0971"+
30687 		"\u0005\u02e2\u0000\u0000\u096a\u0971\u0005\u00b8\u0000\u0000\u096b\u0971"+
30688 		"\u0005\u00b0\u0000\u0000\u096c\u0971\u0005\u00ae\u0000\u0000\u096d\u0971"+
30689 		"\u0005\u00af\u0000\u0000\u096e\u0971\u0005\u030a\u0000\u0000\u096f\u0971"+
30690 		"\u0003\u00aaU\u0000\u0970\u0951\u0001\u0000\u0000\u0000\u0970\u0952\u0001"+
30691 		"\u0000\u0000\u0000\u0970\u0953\u0001\u0000\u0000\u0000\u0970\u0954\u0001"+
30692 		"\u0000\u0000\u0000\u0970\u0955\u0001\u0000\u0000\u0000\u0970\u0956\u0001"+
30693 		"\u0000\u0000\u0000\u0970\u0957\u0001\u0000\u0000\u0000\u0970\u0958\u0001"+
30694 		"\u0000\u0000\u0000\u0970\u0959\u0001\u0000\u0000\u0000\u0970\u095a\u0001"+
30695 		"\u0000\u0000\u0000\u0970\u095b\u0001\u0000\u0000\u0000\u0970\u095c\u0001"+
30696 		"\u0000\u0000\u0000\u0970\u095d\u0001\u0000\u0000\u0000\u0970\u095e\u0001"+
30697 		"\u0000\u0000\u0000\u0970\u095f\u0001\u0000\u0000\u0000\u0970\u0960\u0001"+
30698 		"\u0000\u0000\u0000\u0970\u0961\u0001\u0000\u0000\u0000\u0970\u0962\u0001"+
30699 		"\u0000\u0000\u0000\u0970\u0963\u0001\u0000\u0000\u0000\u0970\u0964\u0001"+
30700 		"\u0000\u0000\u0000\u0970\u0965\u0001\u0000\u0000\u0000\u0970\u0966\u0001"+
30701 		"\u0000\u0000\u0000\u0970\u0967\u0001\u0000\u0000\u0000\u0970\u0968\u0001"+
30702 		"\u0000\u0000\u0000\u0970\u0969\u0001\u0000\u0000\u0000\u0970\u096a\u0001"+
30703 		"\u0000\u0000\u0000\u0970\u096b\u0001\u0000\u0000\u0000\u0970\u096c\u0001"+
30704 		"\u0000\u0000\u0000\u0970\u096d\u0001\u0000\u0000\u0000\u0970\u096e\u0001"+
30705 		"\u0000\u0000\u0000\u0970\u096f\u0001\u0000\u0000\u0000\u0971\u019b\u0001"+
30706 		"\u0000\u0000\u0000\u0972\u0978\u0005\u01a3\u0000\u0000\u0973\u0979\u0003"+
30707 		"\u014e\u00a7\u0000\u0974\u0975\u0005\u001e\u0000\u0000\u0975\u0976\u0003"+
30708 		"\u014e\u00a7\u0000\u0976\u0977\u0005\u001f\u0000\u0000\u0977\u0979\u0001"+
30709 		"\u0000\u0000\u0000\u0978\u0973\u0001\u0000\u0000\u0000\u0978\u0974\u0001"+
30710 		"\u0000\u0000\u0000\u0979\u097a\u0001\u0000\u0000\u0000\u097a\u097b\u0005"+
30711 		"O\u0000\u0000\u097b\u097c\u0005\u001e\u0000\u0000\u097c\u097e\u0003\u0134"+
30712 		"\u009a\u0000\u097d\u097f\u0003\u019e\u00cf\u0000\u097e\u097d\u0001\u0000"+
30713 		"\u0000\u0000\u097e\u097f\u0001\u0000\u0000\u0000\u097f\u0980\u0001\u0000"+
30714 		"\u0000\u0000\u0980\u0981\u0005\u001f\u0000\u0000\u0981\u019d\u0001\u0000"+
30715 		"\u0000\u0000\u0982\u0983\u0005\u013d\u0000\u0000\u0983\u0984\u0005\u01c9"+
30716 		"\u0000\u0000\u0984\u0985\u0005\u0166\u0000\u0000\u0985\u0994\u0005\u01bb"+
30717 		"\u0000\u0000\u0986\u0987\u0005\u013d\u0000\u0000\u0987\u0988\u0005\u01c9"+
30718 		"\u0000\u0000\u0988\u0989\u0005\u0166\u0000\u0000\u0989\u098a\u0005\u01bb"+
30719 		"\u0000\u0000\u098a\u098b\u0005\u031f\u0000\u0000\u098b\u098c\u0005\u021f"+
30720 		"\u0000\u0000\u098c\u0994\u0005\u00f9\u0000\u0000\u098d\u098e\u0005\u013d"+
30721 		"\u0000\u0000\u098e\u098f\u0005p\u0000\u0000\u098f\u0994\u0005\u01bb\u0000"+
30722 		"\u0000\u0990\u0991\u0005\u031f\u0000\u0000\u0991\u0992\u0005\u021f\u0000"+
30723 		"\u0000\u0992\u0994\u0005\u00f9\u0000\u0000\u0993\u0982\u0001\u0000\u0000"+
30724 		"\u0000\u0993\u0986\u0001\u0000\u0000\u0000\u0993\u098d\u0001\u0000\u0000"+
30725 		"\u0000\u0993\u0990\u0001\u0000\u0000\u0000\u0994\u019f\u0001\u0000\u0000"+
30726 		"\u0000\u0995\u0997\u0005z\u0000\u0000\u0996\u0998\u0003\u0146\u00a3\u0000"+
30727 		"\u0997\u0996\u0001\u0000\u0000\u0000\u0997\u0998\u0001\u0000\u0000\u0000"+
30728 		"\u0998\u099a\u0001\u0000\u0000\u0000\u0999\u099b\u0003\u01a6\u00d3\u0000"+
30729 		"\u099a\u0999\u0001\u0000\u0000\u0000\u099b\u099c\u0001\u0000\u0000\u0000"+
30730 		"\u099c\u099a\u0001\u0000\u0000\u0000\u099c\u099d\u0001\u0000\u0000\u0000"+
30731 		"\u099d\u099f\u0001\u0000\u0000\u0000\u099e\u09a0\u0003\u01a8\u00d4\u0000"+
30732 		"\u099f\u099e\u0001\u0000\u0000\u0000\u099f\u09a0\u0001\u0000\u0000\u0000"+
30733 		"\u09a0\u09a1\u0001\u0000\u0000\u0000\u09a1\u09a2\u0005\u00e5\u0000\u0000"+
30734 		"\u09a2\u01a1\u0001\u0000\u0000\u0000\u09a3\u09a4\u0003\u0134\u009a\u0000"+
30735 		"\u09a4\u01a3\u0001\u0000\u0000\u0000\u09a5\u09a6\u0005\u034f\u0000\u0000"+
30736 		"\u09a6\u01a5\u0001\u0000\u0000\u0000\u09a7\u09a8\u0005\u031b\u0000\u0000"+
30737 		"\u09a8\u09a9\u0003\u0134\u009a\u0000\u09a9\u09aa\u0005\u02dc\u0000\u0000"+
30738 		"\u09aa\u09ab\u0003\u0134\u009a\u0000\u09ab\u01a7\u0001\u0000\u0000\u0000"+
30739 		"\u09ac\u09ad\u0005\u00df\u0000\u0000\u09ad\u09ae\u0003\u0134\u009a\u0000"+
30740 		"\u09ae\u01a9\u0001\u0000\u0000\u0000\u09af\u09b0\u0005\u0151\u0000\u0000"+
30741 		"\u09b0\u09b1\u0003\u01ac\u00d6\u0000\u09b1\u01ab\u0001\u0000\u0000\u0000"+
30742 		"\u09b2\u09b3\u0003\u0134\u009a\u0000\u09b3\u09b4\u0003\u01ae\u00d7\u0000"+
30743 		"\u09b4\u01ad\u0001\u0000\u0000\u0000\u09b5\u09b6\u00071\u0000\u0000\u09b6"+
30744 		"\u01af\u0001\u0000\u0000\u0000\u09b7\u09b8\u0005\u01f1\u0000\u0000\u09b8"+
30745 		"\u09b9\u0005t\u0000\u0000\u09b9\u09be\u0003\u01b2\u00d9\u0000\u09ba\u09bb"+
30746 		"\u0005$\u0000\u0000\u09bb\u09bd\u0003\u01b2\u00d9\u0000\u09bc\u09ba\u0001"+
30747 		"\u0000\u0000\u0000\u09bd\u09c0\u0001\u0000\u0000\u0000\u09be\u09bc\u0001"+
30748 		"\u0000\u0000\u0000\u09be\u09bf\u0001\u0000\u0000\u0000\u09bf\u01b1\u0001"+
30749 		"\u0000\u0000\u0000\u09c0\u09be\u0001\u0000\u0000\u0000\u09c1\u09c4\u0003"+
30750 		"\u009cN\u0000\u09c2\u09c4\u0003\u0134\u009a\u0000\u09c3\u09c1\u0001\u0000"+
30751 		"\u0000\u0000\u09c3\u09c2\u0001\u0000\u0000\u0000\u09c4\u09c6\u0001\u0000"+
30752 		"\u0000\u0000\u09c5\u09c7\u0003\u01d6\u00eb\u0000\u09c6\u09c5\u0001\u0000"+
30753 		"\u0000\u0000\u09c6\u09c7\u0001\u0000\u0000\u0000\u09c7\u01b3\u0001\u0000"+
30754 		"\u0000\u0000\u09c8\u09ca\u00072\u0000\u0000\u09c9\u09cb\u0003\u01da\u00ed"+
30755 		"\u0000\u09ca\u09c9\u0001\u0000\u0000\u0000\u09ca\u09cb\u0001\u0000\u0000"+
30756 		"\u0000\u09cb\u09cd\u0001\u0000\u0000\u0000\u09cc\u09ce\u0003\u01bc\u00de"+
30757 		"\u0000\u09cd\u09cc\u0001\u0000\u0000\u0000\u09cd\u09ce\u0001\u0000\u0000"+
30758 		"\u0000\u09ce\u0a5c\u0001\u0000\u0000\u0000\u09cf\u09d5\u0005\u0228\u0000"+
30759 		"\u0000\u09d0\u09d2\u0005\u00d8\u0000\u0000\u09d1\u09d3\u0005\u0210\u0000"+
30760 		"\u0000\u09d2\u09d1\u0001\u0000\u0000\u0000\u09d2\u09d3\u0001\u0000\u0000"+
30761 		"\u0000\u09d3\u09d5\u0001\u0000\u0000\u0000\u09d4\u09cf\u0001\u0000\u0000"+
30762 		"\u0000\u09d4\u09d0\u0001\u0000\u0000\u0000\u09d5\u09d7\u0001\u0000\u0000"+
30763 		"\u0000\u09d6\u09d8\u0003\u01be\u00df\u0000\u09d7\u09d6\u0001\u0000\u0000"+
30764 		"\u0000\u09d7\u09d8\u0001\u0000\u0000\u0000\u09d8\u09da\u0001\u0000\u0000"+
30765 		"\u0000\u09d9\u09db\u0003\u01bc\u00de\u0000\u09da\u09d9\u0001\u0000\u0000"+
30766 		"\u0000\u09da\u09db\u0001\u0000\u0000\u0000\u09db\u0a5c\u0001\u0000\u0000"+
30767 		"\u0000\u09dc\u09df\u00073\u0000\u0000\u09dd\u09e0\u0003\u01da\u00ed\u0000"+
30768 		"\u09de\u09e0\u0003\u01be\u00df\u0000\u09df\u09dd\u0001\u0000\u0000\u0000"+
30769 		"\u09df\u09de\u0001\u0000\u0000\u0000\u09df\u09e0\u0001\u0000\u0000\u0000"+
30770 		"\u09e0\u09e2\u0001\u0000\u0000\u0000\u09e1\u09e3\u0003\u01bc\u00de\u0000"+
30771 		"\u09e2\u09e1\u0001\u0000\u0000\u0000\u09e2\u09e3\u0001\u0000\u0000\u0000"+
30772 		"\u09e3\u0a5c\u0001\u0000\u0000\u0000\u09e4\u09e6\u0005l\u0000\u0000\u09e5"+
30773 		"\u09e7\u0003\u01da\u00ed\u0000\u09e6\u09e5\u0001\u0000\u0000\u0000\u09e6"+
30774 		"\u09e7\u0001\u0000\u0000\u0000\u09e7\u0a5c\u0001\u0000\u0000\u0000\u09e8"+
30775 		"\u0a5c\u00074\u0000\u0000\u09e9\u09eb\u0005\u0080\u0000\u0000\u09ea\u09ec"+
30776 		"\u0003\u01da\u00ed\u0000\u09eb\u09ea\u0001\u0000\u0000\u0000\u09eb\u09ec"+
30777 		"\u0001\u0000\u0000\u0000\u09ec\u09ee\u0001\u0000\u0000\u0000\u09ed\u09ef"+
30778 		"\u0003\u01c2\u00e1\u0000\u09ee\u09ed\u0001\u0000\u0000\u0000\u09ee\u09ef"+
30779 		"\u0001\u0000\u0000\u0000\u09ef\u0a5c\u0001\u0000\u0000\u0000\u09f0\u09f3"+
30780 		"\u0005\u01ca\u0000\u0000\u09f1\u09f3\u0005\u01c7\u0000\u0000\u09f2\u09f0"+
30781 		"\u0001\u0000\u0000\u0000\u09f2\u09f1\u0001\u0000\u0000\u0000\u09f3\u09f5"+
30782 		"\u0001\u0000\u0000\u0000\u09f4\u09f6\u0003\u01da\u00ed\u0000\u09f5\u09f4"+
30783 		"\u0001\u0000\u0000\u0000\u09f5\u09f6\u0001\u0000\u0000\u0000\u09f6\u09f8"+
30784 		"\u0001\u0000\u0000\u0000\u09f7\u09f9\u0005j\u0000\u0000\u09f8\u09f7\u0001"+
30785 		"\u0000\u0000\u0000\u09f8\u09f9\u0001\u0000\u0000\u0000\u09f9\u0a5c\u0001"+
30786 		"\u0000\u0000\u0000\u09fa\u0a5c\u0007-\u0000\u0000\u09fb\u09fd\u0005j\u0000"+
30787 		"\u0000\u09fc\u09fe\u0003\u01da\u00ed\u0000\u09fd\u09fc\u0001\u0000\u0000"+
30788 		"\u0000\u09fd\u09fe\u0001\u0000\u0000\u0000\u09fe\u0a5c\u0001\u0000\u0000"+
30789 		"\u0000\u09ff\u0a03\u0005\u0081\u0000\u0000\u0a00\u0a03\u0005\u0083\u0000"+
30790 		"\u0000\u0a01\u0a03\u0005\u030f\u0000\u0000\u0a02\u09ff\u0001\u0000\u0000"+
30791 		"\u0000\u0a02\u0a00\u0001\u0000\u0000\u0000\u0a02\u0a01\u0001\u0000\u0000"+
30792 		"\u0000\u0a03\u0a04\u0001\u0000\u0000\u0000\u0a04\u0a06\u0003\u01da\u00ed"+
30793 		"\u0000\u0a05\u0a07\u0003\u01c2\u00e1\u0000\u0a06\u0a05\u0001\u0000\u0000"+
30794 		"\u0000\u0a06\u0a07\u0001\u0000\u0000\u0000\u0a07\u0a5c\u0001\u0000\u0000"+
30795 		"\u0000\u0a08\u0a09\u0005\u01c6\u0000\u0000\u0a09\u0a11\u0005\u030f\u0000"+
30796 		"\u0000\u0a0a\u0a11\u0005\u01e0\u0000\u0000\u0a0b\u0a0c\u0005\u01ca\u0000"+
30797 		"\u0000\u0a0c\u0a11\u0005\u030f\u0000\u0000\u0a0d\u0a11\u0005\u01c8\u0000"+
30798 		"\u0000\u0a0e\u0a0f\u0005\u01ca\u0000\u0000\u0a0f\u0a11\u0005\u0312\u0000"+
30799 		"\u0000\u0a10\u0a08\u0001\u0000\u0000\u0000\u0a10\u0a0a\u0001\u0000\u0000"+
30800 		"\u0000\u0a10\u0a0b\u0001\u0000\u0000\u0000\u0a10\u0a0d\u0001\u0000\u0000"+
30801 		"\u0000\u0a10\u0a0e\u0001\u0000\u0000\u0000\u0a11\u0a12\u0001\u0000\u0000"+
30802 		"\u0000\u0a12\u0a14\u0003\u01da\u00ed\u0000\u0a13\u0a15\u0005j\u0000\u0000"+
30803 		"\u0a14\u0a13\u0001\u0000\u0000\u0000\u0a14\u0a15\u0001\u0000\u0000\u0000"+
30804 		"\u0a15\u0a5c\u0001\u0000\u0000\u0000\u0a16\u0a18\u0005\u030e\u0000\u0000"+
30805 		"\u0a17\u0a19\u0003\u01da\u00ed\u0000\u0a18\u0a17\u0001\u0000\u0000\u0000"+
30806 		"\u0a18\u0a19\u0001\u0000\u0000\u0000\u0a19\u0a5c\u0001\u0000\u0000\u0000"+
30807 		"\u0a1a\u0a1c\u0005\u0329\u0000\u0000\u0a1b\u0a1d\u0003\u01da\u00ed\u0000"+
30808 		"\u0a1c\u0a1b\u0001\u0000\u0000\u0000\u0a1c\u0a1d\u0001\u0000\u0000\u0000"+
30809 		"\u0a1d\u0a1f\u0001\u0000\u0000\u0000\u0a1e\u0a20\u0003\u01bc\u00de\u0000"+
30810 		"\u0a1f\u0a1e\u0001\u0000\u0000\u0000\u0a1f\u0a20\u0001\u0000\u0000\u0000"+
30811 		"\u0a20\u0a5c\u0001\u0000\u0000\u0000\u0a21\u0a5c\u0005\u00b8\u0000\u0000"+
30812 		"\u0a22\u0a24\u0005\u02df\u0000\u0000\u0a23\u0a25\u0003\u01c0\u00e0\u0000"+
30813 		"\u0a24\u0a23\u0001\u0000\u0000\u0000\u0a24\u0a25\u0001\u0000\u0000\u0000"+
30814 		"\u0a25\u0a5c\u0001\u0000\u0000\u0000\u0a26\u0a5c\u0007.\u0000\u0000\u0a27"+
30815 		"\u0a29\u0005\u02e0\u0000\u0000\u0a28\u0a2a\u0003\u01c0\u00e0\u0000\u0a29"+
30816 		"\u0a28\u0001\u0000\u0000\u0000\u0a29\u0a2a\u0001\u0000\u0000\u0000\u0a2a"+
30817 		"\u0a5c\u0001\u0000\u0000\u0000\u0a2b\u0a2d\u0005\u00b9\u0000\u0000\u0a2c"+
30818 		"\u0a2e\u0003\u01c0\u00e0\u0000\u0a2d\u0a2c\u0001\u0000\u0000\u0000\u0a2d"+
30819 		"\u0a2e\u0001\u0000\u0000\u0000\u0a2e\u0a5c\u0001\u0000\u0000\u0000\u0a2f"+
30820 		"\u0a5c\u0005\u02e3\u0000\u0000\u0a30\u0a32\u0005m\u0000\u0000\u0a31\u0a33"+
30821 		"\u0003\u01da\u00ed\u0000\u0a32\u0a31\u0001\u0000\u0000\u0000\u0a32\u0a33"+
30822 		"\u0001\u0000\u0000\u0000\u0a33\u0a5c\u0001\u0000\u0000\u0000\u0a34\u0a5c"+
30823 		"\u00075\u0000\u0000\u0a35\u0a36\u0005\u0180\u0000\u0000\u0a36\u0a5c\u0005"+
30824 		"\u030e\u0000\u0000\u0a37\u0a39\u00076\u0000\u0000\u0a38\u0a37\u0001\u0000"+
30825 		"\u0000\u0000\u0a38\u0a39\u0001\u0000\u0000\u0000\u0a39\u0a3b\u0001\u0000"+
30826 		"\u0000\u0000\u0a3a\u0a3c\u0003\u01c2\u00e1\u0000\u0a3b\u0a3a\u0001\u0000"+
30827 		"\u0000\u0000\u0a3b\u0a3c\u0001\u0000\u0000\u0000\u0a3c\u0a5c\u0001\u0000"+
30828 		"\u0000\u0000\u0a3d\u0a3f\u0005\u02e5\u0000\u0000\u0a3e\u0a40\u0003\u01c2"+
30829 		"\u00e1\u0000\u0a3f\u0a3e\u0001\u0000\u0000\u0000\u0a3f\u0a40\u0001\u0000"+
30830 		"\u0000\u0000\u0a40\u0a5c\u0001\u0000\u0000\u0000\u0a41\u0a43\u0005\u02da"+
30831 		"\u0000\u0000\u0a42\u0a44\u0003\u01da\u00ed\u0000\u0a43\u0a42\u0001\u0000"+
30832 		"\u0000\u0000\u0a43\u0a44\u0001\u0000\u0000\u0000\u0a44\u0a46\u0001\u0000"+
30833 		"\u0000\u0000\u0a45\u0a47\u0003\u01c2\u00e1\u0000\u0a46\u0a45\u0001\u0000"+
30834 		"\u0000\u0000\u0a46\u0a47\u0001\u0000\u0000\u0000\u0a47\u0a5c\u0001\u0000"+
30835 		"\u0000\u0000\u0a48\u0a4a\u0005\u01ae\u0000\u0000\u0a49\u0a4b\u0003\u01c2"+
30836 		"\u00e1\u0000\u0a4a\u0a49\u0001\u0000\u0000\u0000\u0a4a\u0a4b\u0001\u0000"+
30837 		"\u0000\u0000\u0a4b\u0a5c\u0001\u0000\u0000\u0000\u0a4c\u0a4e\u0005\u0182"+
30838 		"\u0000\u0000\u0a4d\u0a4f\u0003\u01c2\u00e1\u0000\u0a4e\u0a4d\u0001\u0000"+
30839 		"\u0000\u0000\u0a4e\u0a4f\u0001\u0000\u0000\u0000\u0a4f\u0a5c\u0001\u0000"+
30840 		"\u0000\u0000\u0a50\u0a51\u0005\u00eb\u0000\u0000\u0a51\u0a53\u0003\u01b6"+
30841 		"\u00db\u0000\u0a52\u0a54\u0003\u01c2\u00e1\u0000\u0a53\u0a52\u0001\u0000"+
30842 		"\u0000\u0000\u0a53\u0a54\u0001\u0000\u0000\u0000\u0a54\u0a5c\u0001\u0000"+
30843 		"\u0000\u0000\u0a55\u0a56\u0005\u027d\u0000\u0000\u0a56\u0a58\u0003\u01b6"+
30844 		"\u00db\u0000\u0a57\u0a59\u0003\u01c2\u00e1\u0000\u0a58\u0a57\u0001\u0000"+
30845 		"\u0000\u0000\u0a58\u0a59\u0001\u0000\u0000\u0000\u0a59\u0a5c\u0001\u0000"+
30846 		"\u0000\u0000\u0a5a\u0a5c\u00077\u0000\u0000\u0a5b\u09c8\u0001\u0000\u0000"+
30847 		"\u0000\u0a5b\u09d4\u0001\u0000\u0000\u0000\u0a5b\u09dc\u0001\u0000\u0000"+
30848 		"\u0000\u0a5b\u09e4\u0001\u0000\u0000\u0000\u0a5b\u09e8\u0001\u0000\u0000"+
30849 		"\u0000\u0a5b\u09e9\u0001\u0000\u0000\u0000\u0a5b\u09f2\u0001\u0000\u0000"+
30850 		"\u0000\u0a5b\u09fa\u0001\u0000\u0000\u0000\u0a5b\u09fb\u0001\u0000\u0000"+
30851 		"\u0000\u0a5b\u0a02\u0001\u0000\u0000\u0000\u0a5b\u0a10\u0001\u0000\u0000"+
30852 		"\u0000\u0a5b\u0a16\u0001\u0000\u0000\u0000\u0a5b\u0a1a\u0001\u0000\u0000"+
30853 		"\u0000\u0a5b\u0a21\u0001\u0000\u0000\u0000\u0a5b\u0a22\u0001\u0000\u0000"+
30854 		"\u0000\u0a5b\u0a26\u0001\u0000\u0000\u0000\u0a5b\u0a27\u0001\u0000\u0000"+
30855 		"\u0000\u0a5b\u0a2b\u0001\u0000\u0000\u0000\u0a5b\u0a2f\u0001\u0000\u0000"+
30856 		"\u0000\u0a5b\u0a30\u0001\u0000\u0000\u0000\u0a5b\u0a34\u0001\u0000\u0000"+
30857 		"\u0000\u0a5b\u0a35\u0001\u0000\u0000\u0000\u0a5b\u0a38\u0001\u0000\u0000"+
30858 		"\u0000\u0a5b\u0a3d\u0001\u0000\u0000\u0000\u0a5b\u0a41\u0001\u0000\u0000"+
30859 		"\u0000\u0a5b\u0a48\u0001\u0000\u0000\u0000\u0a5b\u0a4c\u0001\u0000\u0000"+
30860 		"\u0000\u0a5b\u0a50\u0001\u0000\u0000\u0000\u0a5b\u0a55\u0001\u0000\u0000"+
30861 		"\u0000\u0a5b\u0a5a\u0001\u0000\u0000\u0000\u0a5c\u01b5\u0001\u0000\u0000"+
30862 		"\u0000\u0a5d\u0a5e\u0005\u001e\u0000\u0000\u0a5e\u0a63\u0003\u01b8\u00dc"+
30863 		"\u0000\u0a5f\u0a60\u0005$\u0000\u0000\u0a60\u0a62\u0003\u01b8\u00dc\u0000"+
30864 		"\u0a61\u0a5f\u0001\u0000\u0000\u0000\u0a62\u0a65\u0001\u0000\u0000\u0000"+
30865 		"\u0a63\u0a61\u0001\u0000\u0000\u0000\u0a63\u0a64\u0001\u0000\u0000\u0000"+
30866 		"\u0a64\u0a66\u0001\u0000\u0000\u0000\u0a65\u0a63\u0001\u0000\u0000\u0000"+
30867 		"\u0a66\u0a67\u0005\u001f\u0000\u0000\u0a67\u01b7\u0001\u0000\u0000\u0000"+
30868 		"\u0a68\u0a6c\u0003\u0098L\u0000\u0a69\u0a6c\u0005\u0353\u0000\u0000\u0a6a"+
30869 		"\u0a6c\u0005\u0354\u0000\u0000\u0a6b\u0a68\u0001\u0000\u0000\u0000\u0a6b"+
30870 		"\u0a69\u0001\u0000\u0000\u0000\u0a6b\u0a6a\u0001\u0000\u0000\u0000\u0a6c"+
30871 		"\u01b9\u0001\u0000\u0000\u0000\u0a6d\u0a70\u0003\u0098L\u0000\u0a6e\u0a70"+
30872 		"\u0005\u0353\u0000\u0000\u0a6f\u0a6d\u0001\u0000\u0000\u0000\u0a6f\u0a6e"+
30873 		"\u0001\u0000\u0000\u0000\u0a70\u01bb\u0001\u0000\u0000\u0000\u0a71\u0a73"+
30874 		"\u00078\u0000\u0000\u0a72\u0a71\u0001\u0000\u0000\u0000\u0a73\u0a74\u0001"+
30875 		"\u0000\u0000\u0000\u0a74\u0a72\u0001\u0000\u0000\u0000\u0a74\u0a75\u0001"+
30876 		"\u0000\u0000\u0000\u0a75\u01bd\u0001\u0000\u0000\u0000\u0a76\u0a77\u0005"+
30877 		"\u001e\u0000\u0000\u0a77\u0a78\u0005\u034f\u0000\u0000\u0a78\u0a79\u0005"+
30878 		"$\u0000\u0000\u0a79\u0a7a\u0005\u034f\u0000\u0000\u0a7a\u0a7b\u0005\u001f"+
30879 		"\u0000\u0000\u0a7b\u01bf\u0001\u0000\u0000\u0000\u0a7c\u0a7d\u0005\u001e"+
30880 		"\u0000\u0000\u0a7d\u0a7e\u0005\u034f\u0000\u0000\u0a7e\u0a7f\u0005\u001f"+
30881 		"\u0000\u0000\u0a7f\u01c1\u0001\u0000\u0000\u0000\u0a80\u0a8f\u0003\u01c4"+
30882 		"\u00e2\u0000\u0a81\u0a8f\u0003\u01c6\u00e3\u0000\u0a82\u0a8f\u0005u\u0000"+
30883 		"\u0000\u0a83\u0a84\u0003\u01c8\u00e4\u0000\u0a84\u0a86\u0003\u00d6k\u0000"+
30884 		"\u0a85\u0a87\u0005j\u0000\u0000\u0a86\u0a85\u0001\u0000\u0000\u0000\u0a86"+
30885 		"\u0a87\u0001\u0000\u0000\u0000\u0a87\u0a8f\u0001\u0000\u0000\u0000\u0a88"+
30886 		"\u0a8c\u0005j\u0000\u0000\u0a89\u0a8a\u0003\u01c8\u00e4\u0000\u0a8a\u0a8b"+
30887 		"\u0003\u00d6k\u0000\u0a8b\u0a8d\u0001\u0000\u0000\u0000\u0a8c\u0a89\u0001"+
30888 		"\u0000\u0000\u0000\u0a8c\u0a8d\u0001\u0000\u0000\u0000\u0a8d\u0a8f\u0001"+
30889 		"\u0000\u0000\u0000\u0a8e\u0a80\u0001\u0000\u0000\u0000\u0a8e\u0a81\u0001"+
30890 		"\u0000\u0000\u0000\u0a8e\u0a82\u0001\u0000\u0000\u0000\u0a8e\u0a83\u0001"+
30891 		"\u0000\u0000\u0000\u0a8e\u0a88\u0001\u0000\u0000\u0000\u0a8f\u01c3\u0001"+
30892 		"\u0000\u0000\u0000\u0a90\u0a92\u0005[\u0000\u0000\u0a91\u0a93\u0005j\u0000"+
30893 		"\u0000\u0a92\u0a91\u0001\u0000\u0000\u0000\u0a92\u0a93\u0001\u0000\u0000"+
30894 		"\u0000\u0a93\u0a97\u0001\u0000\u0000\u0000\u0a94\u0a95\u0005j\u0000\u0000"+
30895 		"\u0a95\u0a97\u0005[\u0000\u0000\u0a96\u0a90\u0001\u0000\u0000\u0000\u0a96"+
30896 		"\u0a94\u0001\u0000\u0000\u0000\u0a97\u01c5\u0001\u0000\u0000\u0000\u0a98"+
30897 		"\u0a9a\u0005\u02f6\u0000\u0000\u0a99\u0a9b\u0005j\u0000\u0000\u0a9a\u0a99"+
30898 		"\u0001\u0000\u0000\u0000\u0a9a\u0a9b\u0001\u0000\u0000\u0000\u0a9b\u0a9f"+
30899 		"\u0001\u0000\u0000\u0000\u0a9c\u0a9d\u0005j\u0000\u0000\u0a9d\u0a9f\u0005"+
30900 		"\u02f6\u0000\u0000\u0a9e\u0a98\u0001\u0000\u0000\u0000\u0a9e\u0a9c\u0001"+
30901 		"\u0000\u0000\u0000\u0a9f\u01c7\u0001\u0000\u0000\u0000\u0aa0\u0aa1\u0007"+
30902 		"9\u0000\u0000\u0aa1\u0aa4\u0005\u027d\u0000\u0000\u0aa2\u0aa4\u0005\u0084"+
30903 		"\u0000\u0000\u0aa3\u0aa0\u0001\u0000\u0000\u0000\u0aa3\u0aa2\u0001\u0000"+
30904 		"\u0000\u0000\u0aa4\u01c9\u0001\u0000\u0000\u0000\u0aa5\u0aa7\u0005\u00c3"+
30905 		"\u0000\u0000\u0aa6\u0aa5\u0001\u0000\u0000\u0000\u0aa6\u0aa7\u0001\u0000"+
30906 		"\u0000\u0000\u0aa7\u0aa8\u0001\u0000\u0000\u0000\u0aa8\u0aaa\u0005\u008e"+
30907 		"\u0000\u0000\u0aa9\u0aab\u0005\u0017\u0000\u0000\u0aaa\u0aa9\u0001\u0000"+
30908 		"\u0000\u0000\u0aaa\u0aab\u0001\u0000\u0000\u0000\u0aab\u0aac\u0001\u0000"+
30909 		"\u0000\u0000\u0aac\u0aad\u0003\u00a8T\u0000\u0aad\u01cb\u0001\u0000\u0000"+
30910 		"\u0000\u0aae\u0ab0\u0005\u00c3\u0000\u0000\u0aaf\u0aae\u0001\u0000\u0000"+
30911 		"\u0000\u0aaf\u0ab0\u0001\u0000\u0000\u0000\u0ab0\u0ab1\u0001\u0000\u0000"+
30912 		"\u0000\u0ab1\u0ab3\u0005\u00e4\u0000\u0000\u0ab2\u0ab4\u0005\u0017\u0000"+
30913 		"\u0000\u0ab3\u0ab2\u0001\u0000\u0000\u0000\u0ab3\u0ab4\u0001\u0000\u0000"+
30914 		"\u0000\u0ab4\u0ab5\u0001\u0000\u0000\u0000\u0ab5\u0ab6\u0003\u0098L\u0000"+
30915 		"\u0ab6\u01cd\u0001\u0000\u0000\u0000\u0ab7\u0ab9\u0005\u00c3\u0000\u0000"+
30916 		"\u0ab8\u0ab7\u0001\u0000\u0000\u0000\u0ab8\u0ab9\u0001\u0000\u0000\u0000"+
30917 		"\u0ab9\u0aba\u0001\u0000\u0000\u0000\u0aba\u0abc\u0003\u01c8\u00e4\u0000"+
30918 		"\u0abb\u0abd\u0005\u0017\u0000\u0000\u0abc\u0abb\u0001\u0000\u0000\u0000"+
30919 		"\u0abc\u0abd\u0001\u0000\u0000\u0000\u0abd\u0abe\u0001\u0000\u0000\u0000"+
30920 		"\u0abe\u0abf\u0003\u00d6k\u0000\u0abf\u01cf\u0001\u0000\u0000\u0000\u0ac0"+
30921 		"\u0ac6\u0007:\u0000\u0000\u0ac1\u0ac3\u0005\u001e\u0000\u0000\u0ac2\u0ac4"+
30922 		"\u0005\u034f\u0000\u0000\u0ac3\u0ac2\u0001\u0000\u0000\u0000\u0ac3\u0ac4"+
30923 		"\u0001\u0000\u0000\u0000\u0ac4\u0ac5\u0001\u0000\u0000\u0000\u0ac5\u0ac7"+
30924 		"\u0005\u001f\u0000\u0000\u0ac6\u0ac1\u0001\u0000\u0000\u0000\u0ac6\u0ac7"+
30925 		"\u0001\u0000\u0000\u0000\u0ac7\u01d1\u0001\u0000\u0000\u0000\u0ac8\u0ac9"+
30926 		"\u0007;\u0000\u0000\u0ac9\u01d3\u0001\u0000\u0000\u0000\u0aca\u0acb\u0007"+
30927 		"<\u0000\u0000\u0acb\u01d5\u0001\u0000\u0000\u0000\u0acc\u0acd\u0007=\u0000"+
30928 		"\u0000\u0acd\u01d7\u0001\u0000\u0000\u0000\u0ace\u0acf\u0007\u0004\u0000"+
30929 		"\u0000\u0acf\u01d9\u0001\u0000\u0000\u0000\u0ad0\u0ad1\u0005\u001e\u0000"+
30930 		"\u0000\u0ad1\u0ad2\u0005\u034f\u0000\u0000\u0ad2\u0ad3\u0005\u001f\u0000"+
30931 		"\u0000\u0ad3\u01db\u0001\u0000\u0000\u0000\u0ad4\u0ad5\u0003\u01c8\u00e4"+
30932 		"\u0000\u0ad5\u0ad6\u0003\u00d6k\u0000\u0ad6\u01dd\u0001\u0000\u0000\u0000"+
30933 		"\u0ad7\u0ada\u0005\u008e\u0000\u0000\u0ad8\u0adb\u0003\u00a8T\u0000\u0ad9"+
30934 		"\u0adb\u0003\u0092I\u0000\u0ada\u0ad8\u0001\u0000\u0000\u0000\u0ada\u0ad9"+
30935 		"\u0001\u0000\u0000\u0000\u0adb\u01df\u0001\u0000\u0000\u0000\u0adc\u0ae5"+
30936 		"\u0005\u001e\u0000\u0000\u0add\u0ae2\u0003\u00aaU\u0000\u0ade\u0adf\u0005"+
30937 		"$\u0000\u0000\u0adf\u0ae1\u0003\u00aaU\u0000\u0ae0\u0ade\u0001\u0000\u0000"+
30938 		"\u0000\u0ae1\u0ae4\u0001\u0000\u0000\u0000\u0ae2\u0ae0\u0001\u0000\u0000"+
30939 		"\u0000\u0ae2\u0ae3\u0001\u0000\u0000\u0000\u0ae3\u0ae6\u0001\u0000\u0000"+
30940 		"\u0000\u0ae4\u0ae2\u0001\u0000\u0000\u0000\u0ae5\u0add\u0001\u0000\u0000"+
30941 		"\u0000\u0ae5\u0ae6\u0001\u0000\u0000\u0000\u0ae6\u0ae7\u0001\u0000\u0000"+
30942 		"\u0000\u0ae7\u0ae8\u0005\u001f\u0000\u0000\u0ae8\u01e1\u0001\u0000\u0000"+
30943 		"\u0000\u0ae9\u0aea\u0005\u0139\u0000\u0000\u0aea\u0aeb\u0005\u01d6\u0000"+
30944 		"\u0000\u0aeb\u0aec\u0005\u00f7\u0000\u0000\u0aec\u01e3\u0001\u0000\u0000"+
30945 		"\u0000\u0aed\u0aee\u0005\u0139\u0000\u0000\u0aee\u0aef\u0005\u00f7\u0000"+
30946 		"\u0000\u0aef\u01e5\u0001\u0000\u0000\u0000\u0af0\u0af1\u0005\u034f\u0000"+
30947 		"\u0000\u0af1\u01e7\u0001\u0000\u0000\u0000\u0af2\u0af3\u0003\u00aaU\u0000"+
30948 		"\u0af3\u01e9\u0001\u0000\u0000\u0000\u0af4\u0af5\u0003\u00aaU\u0000\u0af5"+
30949 		"\u01eb\u0001\u0000\u0000\u0000\u0af6\u0af7\u0003\u00aaU\u0000\u0af7\u01ed"+
30950 		"\u0001\u0000\u0000\u0000\u0af8\u0af9\u0007>\u0000\u0000\u0af9\u01ef\u0001"+
30951 		"\u0000\u0000\u0000\u0afa\u0afb\u0007?\u0000\u0000\u0afb\u01f1\u0001\u0000"+
30952 		"\u0000\u0000\u0afc\u0afd\u0005\u0110\u0000\u0000\u0afd\u0afe\u0005\u007f"+
30953 		"\u0000\u0000\u0afe\u0aff\u0003\u0098L\u0000\u0aff\u01f3\u0001\u0000\u0000"+
30954 		"\u0000\u015e\u01f8\u01fc\u01ff\u0202\u0207\u020b\u0210\u0213\u0216\u0219"+
30955 		"\u021d\u0220\u0228\u022c\u022f\u0236\u023b\u0242\u0247\u024b\u024e\u0254"+
30956 		"\u025f\u0265\u026d\u0273\u027a\u027d\u0280\u0283\u0286\u028d\u0295\u029e"+
30957 		"\u02a5\u02aa\u02b3\u02b6\u02b9\u02bc\u02bf\u02c2\u02c5\u02ca\u02cd\u02d0"+
30958 		"\u02db\u02df\u02e3\u02ec\u02f2\u02f5\u02f9\u02fc\u02ff\u0306\u030c\u0311"+
30959 		"\u0315\u0319\u031d\u031f\u0325\u0327\u032e\u0334\u0339\u033c\u033f\u0342"+
30960 		"\u0345\u0348\u0357\u035c\u0363\u036b\u0378\u037e\u0384\u0389\u038c\u038f"+
30961 		"\u0396\u039e\u03a5\u03ac\u03b5\u03ba\u03bf\u03c2\u03c5\u03c8\u03cc\u03d3"+
30962 		"\u03d9\u03e2\u03ec\u03f7\u03f9\u0401\u0409\u0412\u0415\u0419\u041d\u0423"+
30963 		"\u0429\u042c\u0435\u0441\u0446\u044f\u0456\u045a\u045e\u0466\u0475\u047b"+
30964 		"\u0483\u048b\u0497\u049d\u049f\u04a5\u04a7\u04a9\u04ae\u04b1\u04b7\u04bc"+
30965 		"\u04c3\u04ca\u04d1\u04df\u04e4\u04e8\u04eb\u04f3\u04f7\u04fa\u04fe\u0506"+
30966 		"\u0512\u0521\u0527\u052c\u0532\u053b\u0542\u0550\u0559\u055e\u0563\u0565"+
30967 		"\u0572\u057e\u0584\u058b\u0597\u05a9\u05ab\u05ad\u05b2\u05b8\u05ba\u05bf"+
30968 		"\u05ca\u05d1\u05d8\u05e7\u05ef\u05f7\u0613\u061a\u061e\u0625\u062d\u0636"+
30969 		"\u063b\u0647\u0654\u0656\u0665\u067f\u0681\u068a\u0691\u069a\u06a1\u06af"+
30970 		"\u06b5\u06b9\u06bf\u06ee\u06f0\u06fe\u0702\u070a\u0710\u071f\u0722\u0727"+
30971 		"\u072e\u0730\u0739\u0741\u0745\u074c\u0754\u0759\u0760\u0763\u076a\u0771"+
30972 		"\u0775\u0778\u077c\u0785\u078c\u078f\u0793\u07b5\u07be\u07c2\u07cb\u07ce"+
30973 		"\u07d1\u07d4\u07db\u07e9\u07fe\u0803\u0808\u080f\u0813\u0816\u081a\u082a"+
30974 		"\u082e\u0837\u0843\u0846\u084a\u084f\u0855\u0861\u086b\u0879\u087d\u088d"+
30975 		"\u0891\u0895\u0898\u089c\u089f\u08a6\u08aa\u08af\u08b7\u08b9\u08c9\u08d4"+
30976 		"\u08d8\u08e8\u08ed\u08f5\u08f8\u0902\u0907\u0913\u0916\u0920\u0926\u092a"+
30977 		"\u092d\u0931\u0937\u093a\u0940\u0949\u094d\u0970\u0978\u097e\u0993\u0997"+
30978 		"\u099c\u099f\u09be\u09c3\u09c6\u09ca\u09cd\u09d2\u09d4\u09d7\u09da\u09df"+
30979 		"\u09e2\u09e6\u09eb\u09ee\u09f2\u09f5\u09f8\u09fd\u0a02\u0a06\u0a10\u0a14"+
30980 		"\u0a18\u0a1c\u0a1f\u0a24\u0a29\u0a2d\u0a32\u0a38\u0a3b\u0a3f\u0a43\u0a46"+
30981 		"\u0a4a\u0a4e\u0a53\u0a58\u0a5b\u0a63\u0a6b\u0a6f\u0a74\u0a86\u0a8c\u0a8e"+
30982 		"\u0a92\u0a96\u0a9a\u0a9e\u0aa3\u0aa6\u0aaa\u0aaf\u0ab3\u0ab8\u0abc\u0ac3"+
30983 		"\u0ac6\u0ada\u0ae2\u0ae5";
30984 	public static final String _serializedATN = Utils.join(
30985 		new String[] {
30986 			_serializedATNSegment0,
30987 			_serializedATNSegment1
30988 		},
30989 		""
30990 	);
30991 	public static final ATN _ATN =
30992 		new ATNDeserializer().deserialize(_serializedATN.toCharArray());
30993 	static {
30994 		_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
30995 		for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
30996 			_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
30997 		}
30998 	}
30999 }